利用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);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
报内存溢出,可能是在短时间内反复多次加载了比较占内存的数据,JVM来不及回收就挂掉了。另一个可能是项目中存在内存泄漏的代码。
JFinal数据库操作部分,每次操作完都会在finally代码块中立即关闭ResultSet、Statement、Connection这三对象,资源会立即释放,不会有内存泄漏。
如果数据库操作有内存泄露,早就有Bug报出来了,,,根本不会等到现在
我看过取DB连接的源码,也修改,源代码没有问题。。。