每次循环都要执行一次sql插入操作,怎么分批次处理?
java ,有一万次循环,每次循环都要执行一次sql插入操作,怎么分批次处理?希望大神给出代码以及说明下过程,不胜感激!
循环拼接sql,insert into tab(a) values(a),(a),(a),(a),
这样拼接,次数达到多少次后执行sql就行了.
那要看你具体要实现什么功能,在一个要什么样的分批次的处理
你可以查出来这些全部对象,然后存放到一个list里,然后写一个类似于数据库的假分页,或者你从数据库取数据的时候就使用分页的方式去逐渐取出数据,取出少量数据之后,拿到你所需要的属性值去调接口,然后返回的数据,你存一下,这样可以来控制小数据量,多次请求,减轻服务器压力
先循环这个结果,拼接sql字符串,比如
1234 StringBuffer sb = new StringBuffer(); sb.append("insert into table(column1,column2,column3) values('01','aa',1);")sb.append("insert into table(column1,column2,column3) values('02','bb',2);")sb.append("insert into table(column1,column2,column3) values('03','cc',3);")
然后把这个字符串去执行sql
java后台controller中,for循环执行数据库操作,但是发现实际仅仅执行了一次,或者说提交成功了一次,并没有实际的个数循环
有可能是同一个对象导致的
可以仔细看一下下面两段代码有什么区别
ps:代码无实际意义,只为演示
Entity entity=null;for(int i=0;i<5;i ){
entity= new Entity();
entity。
setId(i);
entity。setCreateTime(new Date()); boolean updateResult = Service。
update( entity );
}
Entity entity = new Entity();for(int i=0;i<5;i ){
entity。
setId(i);
entity。setCreateTime(new Date()); boolean updateResult = Service。
update(entity );
}
很明显上面是声明了一个引用,每一次都创建了一个新的对象,并执行update操作
下面是同一个对象,不断地改变赋值,然后执行了update操作
其结果截然不同:
上面的一段代码,会执行实际的次数,循环0,1,2,3,4 执行5次update
下面的代码仅仅只会执行一次,因为是同一个对象
所以如果循环里面,调用service,service调用了dao执行了sql,如果发现仅仅只是执行了一次,可以考虑怀疑是不是对象是同一个
纯手打 望采纳。
答:不执行操作是不会中毒了 但是你要是开启了自动播放功能就是已经操作了,中毒机会很大。 推荐 USBCleaner6.0 它除了基本查毒功能之外还有保护时间 恢复被...详情>>