日期:2014-05-20 浏览次数:20903 次
try { Connection con = dataSourse.getConnection(); MappedStatement stmt = sqlMap.getMappedStatement("sql"); stmt.executeUpdate(con,param); } finally [ try { con.close(); // 关闭 }catch(SQLException e){ something; } }
------解决方案--------------------
1、平时mysql的连接数上了500都会挂掉,但现在即使到了900也没问题,请问这个是为什么呢?
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()的时候连接会关闭
另外如果不进行显示事务调用的话,连接也是自动关闭的
------解决方案--------------------
ibatis会自动释放连接的。。
其实LZ可以不用这样连的。