mybatis批量插入的时候,为什么会存储很多insert语句导致内存溢出 5C

我在这个一个while 循环里,有两条sql语句,一条sql查询出来list对象,另一条sql语句
将list批量插入到数据库,用的mybatis持久层,我用的slqsession直接操作的,
但是程序运行一段时间后,堆内存一直在增长,我用了jdk下面的可视化监控工具
发现,对内存好多insert 语句被存储起来了,我并没有启用二级缓存,用的sqlsession,每一次循环重新获取,然后关闭,并且claercache,这是为什么

seelye
沉默之声0619 你这个问题解决了吗?
大约一年之前 回复

2个回答

我在这个一个while 循环里,有两条sql语句,一条sql查询出来list对象,另一条sql语句
将list批量插入到数据库,用的mybatis持久层,我用的slqsession直接操作的,
但是程序运行一段时间后,堆内存一直在增长,我用了jdk下面的可视化监控工具
发现,对内存好多insert 语句被存储起来了,我并没有启用二级缓存,用的sqlsession,每一次循环重新获取,然后关闭,并且claercache,这是为什么

数据库的事物要温习哦,建议这样处理,inser的单独封装成一个slqsession的方法,select的单独封装成一个slqsession的方法,然后在循环里面分别调用这两个方法即可。
简而言之就是一次我就做完一件事之后再做另外一件事。

sliping123
sliping123 目前就是这样做的,我用的多数据源配置,两个不同的sqlsession,但是堆内存还是一直涨,
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问