package com.str;
public class ZiFuChuan {
public static String ss = "全局变量!!!!!!";
String s2 = null;
public int aa = 1 ;
int aa2;
double dou = 1.1;
Double d = new Double(1.1);
public static void main(String[] args) {}
public ZiFuChuan(){}
public ZiFuChuan(String st)...
本次在提供一个关于解决批量导入由于数据量过多,会报出参数过多,我们应该清楚一个问题,sqlserver导入数据时,允许的最大sql长度是3000个字符,但当我们数据过多,及时是使用batch结合事务处理已然会爆掉,实际上我们还可以用另一种方式,将文件生成到数据库所在的服务器上,然后通过数据库本身的备份恢复机制将数据导入到db中,下面是具体操作代码
环境:spring boot-maven-mybatis-sqlserver-tomcat
一、在service实现中创建含有导入数据的文件
@Service
public class ...
懒人不愿做题,所有的东西都用程序跑出来是最好的,下面做一个十进制、八进制、十六进制数互相转换的小程序
public class JZTurn {
public static void main(String[] args) {
int num2 = 1314521;
System.out.println("十进制数:"+num2);
System.out.println("十进制转换二进制:"+turn2(num2));
System.out.println("十进制转换八进制:"+turn8(num2));
System....
前言:
之所以前面做了一个POI的用户模式解析execl的介绍,是因为该模式对于开发时的灵活性,可操作性上较为方便,且该模式对于复杂的EXECL操作有明显的优势。POI用户模式对于EXECL的写操作(创建固定格式的复杂的交叉报表),可以轻松完成,因此会先简单介绍。但是,凡事都有例外,有优点固然也会有缺点。例如:当对于一个开发系统有性能上的要求时,尤其是对于大数据量的性能要求时,POI的用户模式,显然会比较吃力,下面就可以采用SAX——POI事件模式替代。
下面进入正文,依然采用的是MAVEN+SPRING BOOT+MYBATIS jdk1....
前言:
主要功能:做EXECL文件解析、EXECL数据单独校验(EXECL文档格式及主体数据的逻辑校验)及EXECL和TXT的数据联合校验。
1、POI 环境
1.1、软件
MAVEN+SPRING BOOT+MYBATIS jdk1.8
1.2、操作系统
Window X
2、jar包
2.1、poi.jar
<dependency>
<groupId>org.apache.poi</groupId>
...
最近做了一个项目,开发初期决定将业务逻辑分离出一部分在数据库中实现,而对于数据库可以做逻辑处理的地方就是存储过程,这样就涉及mybatis调用存储过程的问题,这里用的数据库是sqlserver,操作很简单,下面直接贴代码
一、dao.xml
<select id="selectProCheck" parameterType="com.nssolsh.boot.modular.system.model.ResultMessage" resultMap="BaseResultMapHead">
exec dbo.execl_body_data_che...
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;
public class StringUtil {
static int varlen1;
static int varlen2;
static String varstr1;
static String varstr2;
static String varstr3;
private s...
//通过服务端
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
public void down(String fileId,HttpServletResponse response) {
//文件路径存在d...
poi在读取execl文件时,数据的列号都是数字的,但是往往我们回写message时需要的是字母的列号,这里提供一个数据库的方式,建立一张数字--字母对应关系表(sqlServer数据库,其他类似),下次提供以java类的方式对数字和字母进行转换
--第一步
WITH seq AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY x.alpha + y.alpha + z.alpha) AS Id,
CONVERT(nchar(3), x.alpha + y.alpha + z.alpha) A...
mybatis的操作是对于dao层接口对应mapper里的同名xml,接口中的方法名对应xml里的同名select/update/insert/delete标签的id值,方法参数对应的是parameterType/parameterMap,方法的返回值对应的是resultType/resultMap。
对于mybatis的批量导入,当dao层接口的方法参数中使用@Param(value="insertOtherList")注解时,会将foreach标签的collection默认的值list修改为insertOtherList,此时在xml中处理时的写法是
...
对于JDK1.8新特性的使用
1.5刚出的增强for循环,用了两年刚顺手,到1.8再加新开发点--Lambda表达式,先从foreach开始。
对于增强for循环,不加深究,直接上代码:
/*
*传统的for不用再声明下标参数,直接声明一个变量psidb就可以直接获取集合中对象的属性值
*
*/
List<PSiDocBody> insertQtyList = new ArrayList<PSiDocBody>();
for(PSiDocBody psidb:insertQtyList){
System.out.println("分类...
public class StringUtil {
static int varlen1;
static int varlen2;
static String varstr1;
static String varstr2;
static String varstr3;
public static String indexOf(String sourceStr,String indexStr,int indexNum){
/**
* 原始字符串:sourceStr
* 索引字符串:indexStr
* 固定字符串截取后索引次数的in...
Oracle
1、rownum
select * from (
select rownum rn,*
from emp
where sj >='2018-03-01' and sj <= '2018-03-31' and rownum<=pageNum*pageSize
) emprn
where emprn>=(pageNum-1)*pageSize
2、row_number() over()
select * from (
select row_num...
常见软件开发中对开始时间和结束时间的控制,在帆软报表中通过简单的公式判断同样可以实现,这里介绍一个设置,结束时间需在开始时间之后,且结束时间和开始时间必须在同一个月内
设置如下:
1、设置开始时间
2、设置结束时间
公式:$starttime
公式:year($starttime)+"-"+month($starttime)+"-"+day(DATEINMONTH($starttime,-1))
说明:帆软中获取年月日的公式均需传入一个完整是...
前章讲到的《多维度单循环模式》中提到需要使用数据库中的拼接字符串的技术,但是当拼接字符串过长且较为复杂时拆串就会非常复杂,下面通过总结封装出一个方法
这里是以Oracle为背景总结的,同理可得其他数据库
CREATE OR REPLACE FUNCTION indchar (str1 varchar2, str2 varchar2,indexs number)
RETURN varchar2
AS
varlen1 number;--字符串总长度
varlen2 number;--用来存储截串用的字符串的长度
...
脚本编程中我们常常被游标限制,因为熟悉数据库编程和面向对象编程的都知道数据库中的游标相当于软件编程中的集合,但是却没有集合那样灵活,因为游标中收到字段的限制,只能存放一个字段。但是我们的实际需求中这样是远远不够的,这里总结出一个在现有条件下可以实现需求的方法,既是游标通过结合拼串,拆串方式实现多维度单循环模式
这里是以Oracle为背景总结的,同理可得其他数据库
create or replace procedure dzd_cur_pro() is
CURSOR dzd_cur IS--创建游标
select a.glgs || '+' || a.glgsi...
一、背景
最近在做东营某集团的数据分析项目,用到的用友NC,众所周知,NC是一套较为完善的ERP系统,对库存、采购、销售的信息化有主导作用,助使企业走向无纸化的管理道路。
对于数据分析项目常见主要流程(工作)为:需求分析-书写项目计划-签订方案
1、需求说明:
a、客户的业务:在本项目中主要是两方面,客户的实际业务流程、相对的NC系统的处理方案
b、数据库调研:相对以上了解的实际业务及NC的流程走向,对应的数据表单、基础档案、以及各表单与档案之间的对应关系;表单数据准确性、档案的完整性及档案...
一、在参数面板中实现不点查询按钮,实现自动查询功能
步奏1:选择控件-事件-编辑后,输入_g().parameterCommit();
步奏2:设置数据集中的参数,与相应控件名一致,即可实现自动查询空能
二、不设置参数面板
步奏:直接在表单中拖入相应的控件,为控件设置值,在点击查询时即可实现自动查询
在帆软的帮助文档中有提到过一种文字特效,既是使文字在屏幕上滚动出现,这个是web前端的一个典型的实现效果的方式,"<marquee id='affiche' align='left' behavior='scroll' bgcolor='blue' direction='up' height='100%' width='30' hspace='0' vspace='0' loop='-1' scrollamount='10' scrolldelay='20' onMouseOut='this.start()' onMouseOver='this.stop()' style='bac...
var kh = this.options.form.getWidgetByName(“kh”).getValue(); var zhmc = this.options.form.getWidgetByName(“zhmc”); if(kh.trim().length=28){ zhmc.setValue(FR.remoteEvaluate(“sql(\“JDBC1\”,\“select t.mc from 表名 t where t.编号=“ +参数+”\”,1,1)”)); }