小平的回忆
BlogJava
首页
新随笔
新文章
管理
posts - 31, comments - 12, trackbacks - 0
Spring+ibatis批量存储心得 2
1、上回的心得中我强调了startBatch()的批处理的作用,但是其中的使用是个错误用法,并没有发挥出startBatch()的实力,对此给与观众的误导我将在此表示到欠,并贴出正确的用法
public
class
LocalDaoImpl
extends
SqlMapClientDaoSupport
implements
LocalDao
{
public
void
insertBuNaTaxBatLst(
final
PaginatedList list)
{
getSqlMapClientTemplate().execute(
new
SqlMapClientCallback()
{
public
Object doInSqlMapClient(SqlMapExecutor executor)
throws
SQLException
{
executor.startBatch();
//
do some iBatis operations here
for
(
int
i
=
0
,count
=
list.size();i
<
count;i
++
)
{
executor.insert(
"
insertBuNaTaxBatLst
"
, list.get(i));
if
(i
%
50
==
0
)
{
System.out.println(
"
----
"
+
i);//没有意义只为测试
}
}
executor.executeBatch();
return
null
;
}
}
);
}
}
这样才能利用上startBatch()威力。
2、注意ibatis的事物默认情况下是自动提交的,如果发现速度上有问题可以留意一下,ibatis只有在显示的声明事物管理的情况下才自动将事物管理改为不自动方式。
3、还是startBatch(),据我测试分析这个鬼东西只有在executeBatch(),才把所有的语句提交到数据库,在提交之前缓存中保留了大量的sql语句和数据对象,很有可能out of memony,对此要留意,可以在大量数据要做插入时,分批用Batch,如:有40000条数据可将其分为4个Batch块,让后将这4个Batch用一个事物提交以保证数据完整性。
注:最近在做数据抽取项目,愿与大家沟通心得
posted on 2007-05-30 21:46
小平
阅读(1218)
评论(3)
编辑
收藏
FeedBack:
#
re: Spring+ibatis批量存储心得 2
2008-01-16 17:43 |
岩石
非常的好,谢谢,受教了
回复
更多评论
#
re: Spring+ibatis批量存储心得 2[未登录]
2008-06-04 00:29 |
peter
学习
回复
更多评论
#
re: Spring+ibatis批量存储心得 2
2008-11-05 10:48 |
菜虫
请问一下,对多张表同时进行批量插入也可以用这种方法吗?
执行插入多少条时去调用 executor.executeBatch();效率快。
回复
更多评论
IT新闻
新用户注册
刷新评论列表
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-05-30 21:50 编辑过
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理
<
2007年5月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
database(3)
eclipse plugIn(2)
hibernate(4)
iBATIS(1)
java(6)
spring(3)
web(1)
webwork
随笔(6)
随笔档案
2008年6月 (1)
2008年4月 (3)
2008年2月 (1)
2008年1月 (1)
2007年12月 (1)
2007年10月 (1)
2007年7月 (2)
2007年6月 (2)
2007年5月 (1)
2007年4月 (6)
2007年2月 (1)
2007年1月 (4)
2006年11月 (1)
2006年10月 (1)
2006年9月 (5)
framework
eclipse 帮助
ibm开发文档
spring中文论坛
webwork中文计划
中国eclipse社区
j2me
j2medev
j2me开发专题
nokia
wap之家
java
csdn
hibernate SessionFactory配置
java开源大全
j道
sun的java 社区
linux
linux伊甸园
web
javascript参考
w3schools
其他
IBM
MSDN
oracle
UML
w3china
友情链接
我的旅游笔记
我的旅游笔记
素材
最新评论
1. re: Spring+ibatis批量存储心得 2
请问一下,对多张表同时进行批量插入也可以用这种方法吗?
执行插入多少条时去调用 executor.executeBatch();效率快。
--菜虫
2. re: Apache服务器的WSASocket failed to open the inherited socket错误[未登录]
解决了 谢谢啊
--星
3. re: Spring+ibatis批量存储心得 2[未登录]
学习
--peter
4. re: 为org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,与Ctrl+y功能
不错,学习了
--张凯
5. re: ibatis批量代码
不知道上面的仁兄是不是使用了spring,如果使用了spring的话,恐怕你这么调用事务有问题啊!
--小平
阅读排行榜
1. oracle 的ORA-01461错误(1332)
2. Spring+ibatis批量存储心得 2(1218)
3. ibatis +spring批量操作心得(1089)
4. Spring+ibatis批量处理心得3(848)
5. C3P0连接池详细配置 (转)(642)
评论排行榜
1. Spring+ibatis批量存储心得 2(3)
2. ibatis批量代码(3)
3. Spring+ibatis批量处理心得3(2)
4. 为org.eclipse.jface.text.TextViewer添加undo、redo 并添加Ctrl+z,与Ctrl+y功能(1)
5. C3P0连接池详细配置 (转)(1)