永发信息网

求问如何避免JDBC内存溢出问题

答案:1  悬赏:80  手机版
解决时间 2021-03-21 17:18
求问如何避免JDBC内存溢出问题
最佳答案
完整形式如:jdbc:mysql://192.168.1.252:3306/lims?useUnicode=true&charsetEncoding=utf8&useCursorFetch=true&defaultFetchSize=100
此方法只针对mysql有效。
方法二:采用分页查询的方式,在不使用连接池的情况下,可采用同一个Connection对象,每执行完一次操作就关闭PreparedStatement对象和ResultSet对象。然后在下一次操作的时候,重新打开PreparedStatement对象和ResultSet对象。(注意这里必须关闭这两个对象)
Sqlserver和Oracle:
方法:采用分页查询的方式,在不使用连接池的情况下,可采用同一个Connection对象,每执行完一次操作就关闭PreparedStatement对象和ResultSet对象。然后在下一次操作的时候,重新打开PreparedStatement对象和ResultSet对象。
内部原理与探讨:
采用java的JDBC操作数据库时,默认数据缓存的方式,即将从数据库查询得到的数据先缓存到本地内存中,然后从内存中读取数据(这也是JDBC的结果集支持上下移动的原因,但Oracle提供的JDBC实现默认是不支持这种上下移动的),所以如果从数据库中得到的数据被过多的缓存在本地内存中,如果超出了内存承受的范围,就会造成内存溢出的情况。
像Mysql的方法一,使用的是URL加参数的方式,这其实是采用了Mysql的游标,数据就不会缓存在本地内存中,而是ResultSet对象指向的是数据库中的记录,即使是上亿条记录,只要网络不断,也不会出现异常情况。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
荣和大地一组团花园里东南门地址有知道的么?
You can hardly imagine what great difficul
2018文山国家公务员考试成绩查询时间
我国所有玉石的种类分类
请问放生是不是善,有很多人说就是放死有的人
红河州个旧驾照可以在蒙自年检吗?
卫生间有味,找不到原因呀?拜托了各位 谢谢
承德渔具开发区店地址在什么地方,想过去办事
读如图所示的省区,位于我国第三级阶梯的是A.
为啥哪咤踩风火轮不烫脚不烧伤来去自如,换做
一个宝盖头和一个付是什么字
牛仔衣短袖服怎么搭配?
大专老师需要什么学历,大专老师需要什么学历
国际汇兑与外汇的区别
湛江市市区常住人口2016年
推荐资讯
南阳新型建材有限公司地址在哪,我要去那里办
电脑没麦克风怎么说话,为什么我的麦克风说不
聚贤阁书画院在哪里啊,我有事要去这个地方
邦均西加油站怎么去啊,有知道地址的么
我这鱼缸壁上有白色的粘液了 怎么办呢?
枫树盆景怎么养,家庭禁忌银杏盆景
白班与夜班有什么区别?
谁说魔法师就一定要会魔法天降小白
网吧桌子有静电主机下面垫快木头有用吗
vivox6有没有来电防打扰功能
五大连池市第一小学校这个地址在什么地方,我
离婚了,男方不给抚养费,能不能取消他的探视
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?