JDBC:Connection.close()
2024-10-19 10:05:21
https://www.2cto.com/database/201501/369246.html
Connection对象在执行close() 方法之后,并不是直接把Connection对象设置为null (Connection对象有一个方法, isClosed() 判断Connection是否被关闭,如果直接设置为null,再执行isClosed() 就会报空指针异常)
close()源码:
public void close() throws SQLException {
synchronized (getConnectionMutex()) {
if (this.connectionLifecycleInterceptors != null) {
new IterateBlock<Extension>(this.connectionLifecycleInterceptors.iterator()) {
@Override
void forEach(Extension each) throws SQLException {
((ConnectionLifecycleInterceptor) each).close();
}
}.doForAll();
} realClose(true, true, false, null);
}
}
测试代码:
DBUtil是自己写的一个工具类,有静态方法 ResultSet generalQuery(),静态属性conn, pst
public class Test {
public static void main(String[] args) {
String sql = "select * from member where mId = ? and mPwd = ?";
Object[] params = {"2015", "1233"};
ResultSet rs = DBUtil.generalQuery(sql, params);int cnt = 0;
try {
if(rs != null) {
rs.last();
cnt = rs.getRow();
}
if(rs != null) rs.close();
if(DBUtil.pst != null) DBUtil.pst.close();
if(DBUtil.conn != null) DBUtil.conn.close(); if(cnt != 0) {
System.out.println("查询成功!");
}else {
System.out.println("查询失败");
}
}catch (SQLException e) {
e.printStackTrace();
}
try {
System.out.println(DBUtil.conn); // com.mysql.jdbc.JDBC4Connection@619a5dff
System.out.println(DBUtil.pst); // java.sql.SQLException: No operations allowed after statement closed.
System.out.println(rs); //com.mysql.jdbc.JDBC42ResultSet@23ab930d System.out.println(DBUtil.conn.isClosed()); //true
System.out.println(DBUtil.pst.isClosed()); //true
System.out.println(rs.isClosed()); //true
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最新文章
- spring cloud 学习研究- spring-cloud-microservice-example
- npm的使用
- linux下忘记mysql root密码解决办法
- 部署到iis后,发现无法加载运行CSS文件
- DTD Tutorial
- windows下安装wamp和wordpress
- webview笔记
- Java中单例七种写法(懒汉、恶汉、静态内部类、双重检验锁、枚举)
- Android提高第十九篇之";多方向";抽屉--转
- BZOJ_1212_[HNOI2004]L语言_哈希
- 【python-appium】Appium的一些坑问题错误解决 与 技巧集锦
- shell编程基础(四): shell脚本语法之函数及调试
- Fiddler抓包和修改WebSocket数据,支持wss
- Python 17 web框架&;Django
- 数据库连接出错 expected key exchange group packet form server
- Android界面设计
- Akka 编程: 什么是Actor
- PoPo数据可视化周刊第一期
- BZOJ2716 [Violet 3]天使玩偶 【CDQ分治】
- Linux的安装与配置