spring+ibatis 批处理
来源:互联网 发布:mac粘贴快捷键 编辑:程序博客网 时间:2024/05/17 23:00
引用:http://ftmxqq-gmail-com.javaeye.com/category/105128?show_full=true
public void batchInsert(final ConcurrentHashMap<String, SpiderUrl> urls) {
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
@Override
public Object doInSqlMapClient(SqlMapExecutor sqlmapexecutor)
throws SQLException {
// TODO Auto-generated method stub
sqlmapexecutor.startBatch();
int i = 0;
Set<String> keys = urls.keySet();
for (String url : keys) {
SpiderUrl spiderUrl = urls.get(url);
// System.out.println("insert:" + spiderUrl);
sqlmapexecutor.insert("url.insert", spiderUrl);
i++;
if (i == 2000) {
sqlmapexecutor.executeBatch();
i = 0;
}
}
sqlmapexecutor.executeBatch();
return null;
}
});
}
最重要一点:
datasource配置中增加一行:<property name="defaultAutoCommit" value="false"/>
但是这样处理,所有的其它非批处理操作均不能插入数据。所以改用下面的方式
public void batchInsert(final ConcurrentHashMap<String, SpiderUrl> urls) {
SqlMapClient client = getSqlMapClient();
Connection con=null;
boolean autoCommit=false;
try {
con = client.getDataSource().getConnection();
autoCommit=con.getAutoCommit();
con.setAutoCommit(false);
client.setUserConnection(con);
client.startBatch();
int i = 0;
Set<String> keys = urls.keySet();
for (String url : keys) {
SpiderUrl spiderUrl = urls.get(url);
// System.out.println("insert:" + spiderUrl);
client.insert("url.insert", spiderUrl);
i++;
if (i == 2000) {
client.executeBatch();
i = 0;
}
}
client.executeBatch();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
con.setAutoCommit(autoCommit);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
datasource配置中增加一行:<property name="defaultAutoCommit" value="true"/>
- spring+ibatis 批处理
- spring+ibatis 批处理
- iBatis批处理实现(Spring环境)
- iBatis批处理实现(Spring环境)
- iBatis整理——iBatis批处理实现(Spring环境)
- iBatis整理——iBatis批处理实现(Spring环境)
- iBatis整理——iBatis批处理实现(Spring环境)
- iBatis整理——iBatis批处理实现(Spring环境)
- ibatis 批处理
- iBatis批处理
- ibatis批处理
- ibatis 批处理
- iBatis与Spring集成时的批处理释疑
- iBatis整理——Spring环境下批处理实现
- iBatis整理——iBatis批处理实现(Spring环境)转载
- 探寻 ibatis 1.3 批处理
- ibatis的批处理
- Spring+ibatis
- oracle游标的使用
- BeanFactory 和 ApplicationContext的区别
- 心理上对网瘾的抗拒可能会违反进化规律
- javaBean为什么要实现Serializable接口?
- windows xp sp3系统下载
- spring+ibatis 批处理
- spring配置文件中scope属性
- Spring下的Bean初始化和销毁两种方式
- Joomla源代码解析(十九) JController
- 谁是毁灭智能手机的掘墓者
- [转]暑期大学生博客分享大赛 - 2011 Android 成长篇
- Windows Phone开发之 Map控件
- spring 中属性scope 的prototype(有状态)和singleton(无状态)
- u-boot mkimage工具使用说明