我的是这样的:
try {
Connection con = dataSourse.getConnection();
MappedStatement stmt = sqlMap.getMappedStatement("sql");
stmt.executeUpdate(con,param);
} finally [
try {
con.close(); // 关闭
}catch(SQLException e){
something;
}
}
try {
Connection con = dataSourse.getConnection();
MappedStatement stmt = sqlMap.getMappedStatement("sql");
stmt.executeUpdate(con,param);
} finally [
try {
con.close(); // 关闭
}catch(SQLException e){
something;
}
}
解决方案 »
- 虚拟主机上的数据库连接超出最大连接数的时候如何关闭已有的连接
- java web中怎么让网页的背景图片拉伸开来
- 关于hibernate的many to many(由one to many 与 many to one组成) 关系
- Java 转 PHP
- 我在配置SPRING的时候出现了些问题,请大家提点提点,SPRING+STRUTS 在STRUTS里PLUS-IN的
- 超级链接, 中文的但是从页面传倒Action中就乱码了??? 数据库不认乱码
- 求救: Resin自己的数据库连接不成功,jndi-name要在哪里配置?
- hibernate: unsaved-value="",那么id=""时就应save吧,可是却update,怎么回事?
- 虚拟主机的问题
- 请问如何在输出得XML中去掉不需要得元素
- 谁有中文版的loadRunner或是下载地址?
- 如何学j2ee(这段时间论坛上很多朋友问)
Connection 是哪个包的?sqlMap是什么类型的?
mysql的sleep状态是等待连接的,mysql可以设定连接等待时间,如果超时的话sleep就关闭
2、这种情况是ibatis没有释放数据库连接吗?
ibatis会自动释放连接的
3、ibatis的手册没有提到要主动回收连接,好像sqlmap也没有close之类的方法,我如何能释放数据库连接呢?
4、我的ibatis的连接代码是这样的
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
然后就用sqlMapper.queryForList()这样来获取数据的,请问这样有问题吗?还需要什么代码来释放数据库连接呢?
ibatis在进行事务处理时,当执行commitTransaction()或rollbackTransaction()的时候连接会关闭
另外如果不进行显示事务调用的话,连接也是自动关闭的
但是我直接用jdbc来连的话,每次查询完,mysql的线程就会回收的了,最多也只有3、4条在sleep的。
造成mysql产生那么多sleep的连接的原因是我用了ibatis默认的SIMPLE的连接池!后来我改用了DBCP后一切正常了,而且感觉上速度也快了很多!如果不是我没有配置好SIMPLE的原因的话,看来ibatis的自带的连接池只能是用来学习,实际应用是用不了的!
谢谢各位,马上结贴!
总结一下:还是apache的东西好用!