jdbc临时表大数据量的插入和查询

maybe565656 2020-09-17 02:54:13
利用jdbc 批处理进行大数据的插入时可节省时间,提高效率;代码如下
Connection conn=null;
PreparedStatement ps=null;
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
conn = sqlSession.getConnection();

if(list!=null&&list.size()>0) {
conn.setAutoCommit(false);

ps = conn.prepareStatement(
"insert into table_test" + " (cloumn) values (?)" );
for (int i = 0; i < list.size(); i++) {
ps.setString(1,list.get(i));
ps.addBatch();
}

ps.executeBatch();
List<String> detailList = sqlSession.getMapper(Mapper.class).query();
conn.commit();
conn.close();
}


}catch(Exception e) {
e.printStackTrace();
}finally {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

用sqlSession.getMapper 是因为如果conn是新生成一个会话;而临时表只能在这个会话中有效,下边再按照平时的方法去调用mapper的方法的时候 ,当你重新写一个select 他是新打开的了一个会话,临时表的数据是查不出来的;
自己瞎写的 ,如有错误请谅解
...全文
2730 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
s478853630 2020-09-29
  • 打赏
  • 举报
回复
查询和增删改用同一个connection就会非常卡,最好分开
廾匸随笔 2020-09-29
  • 打赏
  • 举报
回复
正常处理大量数据要是用这种方式肯定死了,你说的大量数据该不会是几千条吧,你模拟个十万条数据看看你这个会卡成啥样
pengbo19851985 2020-09-28
  • 打赏
  • 举报
回复
可以试着加上一段类似于每10000条数据提交的操作,免得一次提交带来很大的数据量

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧