JFinal的回收机制
利用Jfinal操作数据库的时候一直报内存溢出错误,修改了虚拟机的大小,还是在报错,所以我想知道JFinal的数据库链接什么的一些资源是不是自动回收;
代码:
public void configPlugin(Plugins me) {
// 配置C3p0数据库连接池插件
C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password").trim());
me.add(c3p0Plugin);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
me.add(arp);
arp.addMapping("user", User.class); // 映射user 表到 User模型
arp.addMapping("car", Car.class); // 映射car 表到 Car模型
}
操作数据库的时候:
String sql = "insert into user(name, age,car_num,tel) values(?,?,?,?)";
int[] result = Db.batch(sql, "name, age,car_num,tel", recordList, 100000);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果数据库操作有内存泄露,早就有Bug报出来了,,,根本不会等到现在
我看过取DB连接的源码,也修改,源代码没有问题。。。
报内存溢出,可能是在短时间内反复多次加载了比较占内存的数据,JVM 来不及回收就挂掉了。另一个可能是项目中存在内存泄漏的代码。
JFinal 数据库操作部分,每次操作完都会在 finally 代码块中立即关闭 ResultSet、Statement、Connection 这三对象,资源会立即释放,不会有内存泄漏。