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();
}
}
}

最新文章

  1. spring cloud 学习研究- spring-cloud-microservice-example
  2. npm的使用
  3. linux下忘记mysql root密码解决办法
  4. 部署到iis后,发现无法加载运行CSS文件
  5. DTD Tutorial
  6. windows下安装wamp和wordpress
  7. webview笔记
  8. Java中单例七种写法(懒汉、恶汉、静态内部类、双重检验锁、枚举)
  9. Android提高第十九篇之&quot;多方向&quot;抽屉--转
  10. BZOJ_1212_[HNOI2004]L语言_哈希
  11. 【python-appium】Appium的一些坑问题错误解决 与 技巧集锦
  12. shell编程基础(四): shell脚本语法之函数及调试
  13. Fiddler抓包和修改WebSocket数据,支持wss
  14. Python 17 web框架&amp;Django
  15. 数据库连接出错 expected key exchange group packet form server
  16. Android界面设计
  17. Akka 编程: 什么是Actor
  18. PoPo数据可视化周刊第一期
  19. BZOJ2716 [Violet 3]天使玩偶 【CDQ分治】
  20. Linux的安装与配置

热门文章

  1. OSI七层模型与TCP/IP五层模型-(转自钛白Logic)
  2. BUCK BOOST学习总结
  3. 利用TortoiseGit向Github上传文件
  4. SSTI漏洞-fastapi
  5. 「 洛谷 」P2151 [SDOI2009]HH去散步
  6. java IO教程《四》
  7. TVM适配NN编译Compiler缺陷
  8. 对抗性鲁棒性与模型压缩:ICCV2019论文解析
  9. TensorFlow编程结构
  10. ARM Cortex-M嵌入式C基础编程(下)