Java数据库连接关闭后无法启动

错误如下:

java.sql.SQLException: No operations allowed after connection closed.

at com.mysql.jdbc.Connection.checkClosed(Connection.java:1842)
at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4260)
at com.mysql.jdbc.Connection.prepareStatement(Connection.java:4226)
at hist.nws.db.SqlHelper.query(SqlHelper.java:140)
at hist.nws.service.OperationService.queryActivity(OperationService.java:60)
at MainFrame.<init>(MainFrame.java:115)
at MainFrame.main(MainFrame.java:331)

错误原因:

private static Connection conn = null;
private static PreparedStatement ps = null;
private static ResultSet rs = null;

数据库的连接Connection为Static的,程序共享这一个Connection。所以第一次对数据库操作没问题,当把Connection关闭后,第二次还想操作数据库时Connection肯定不存在了。

时间: 2024-10-28 22:58:00

Java数据库连接关闭后无法启动的相关文章

mongoDB非正常关闭后无法启动问题

mongoDB非正常关闭后无法启动问题: http://my.oschina.net/GivingOnenessDestiny/blog/53804 http://codingstandards.iteye.com/blog/1214093 前段时间不小心非正常关闭了mongoDB,准备重启却发现不行,错误信息如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Tue Apr 17 11:13:30

Java 数据库连接安全关闭代码实现

if(conn != null) { try { conn.close(); } catch(Exception e) { e.printStackTrace(); } conn = null; }写个工具类来关也可以: public static void close(Connection conn) { if(conn != null) { try { conn.close(); } catch(Exception e) { e.printStackTrace(); } conn = nul

Java Web 浏览器关闭后Session就会被销毁吗?

浏览器关闭后Session就会被销毁吗? Session是JSP的九大内置对象(也称为隐含对象)中的一个,用于保存当前用户的状态信息,初学者可能认为Session的生命周期是从打开一个浏览器发送请求到关闭浏览器,这是错误的. Session的运行机制 当用户第一次访问一个支持Session的Web应用时,会开启一个新的Session会话.当用户浏览这个Web应用的不同网页时,始终处于该Session中.具体而言: 1 当开启一个新的Session会话时,Servlet容器会创建一个HttpSes

java数据库连接池实现原理

一.为什么在连接数据库时要使用连接池 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.  一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下. 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池(简单说:在一个"池"里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请.使用和释放.对于多于连接池中连接数的并发请求,应该在请求队列

Java数据库连接池-proxool

连接池技术的思想: 连接复用(高效.安全),避免数据库频繁建立.关闭的开销 --------------------极客学院(参考lulei) 1.配置文件 <proxool> <!-- 连接池别名 --> <alias>localmysqldb</alias> <!-- 连接数据库的驱动URL --> <driver-url><![CDATA[jdbc:mysql://127.0.0.1:3306/test?character

JAVA数据库连接池实现(转)

连接池的管理用了了享元模式,这里对连接池进行简单设计. 一.设计思路 1.连接池配置属性DBbean:里面存放可以配置的一些属性 2.连接池接口IConnectionPool:里面定义一些基本的获取连接的一些方法 3.接口实现ConnectionPool:对上面操作进行实现,并加入一些其他方法 4.连接池管理ConnectionPoolManager:管理所有的不同的连接池,所有的连接都能通过这里进行获得连接 5.另外还有几个测试类,和连接信息模拟的类,这里就不进行xml 和配置文件信息的读取了

解决Eclipse异常关闭后重启报 org.eclipse.swt.SWTException: Invalid thread access 的问题

. . . . . 很久没有写博客了,最近实在是太忙,一直想写点干货,但是一直没静下心来学习. 今天又在加班忙碌之中,结果谁知道越忙碌越出问题.先是 weblogic 没有正常启动,凭经验第一反应就是7001端口被其它程序占用了,然后通过命令查看之后,发现果然是被占用了,占用端口的竟然是Eclipse,查找占用端口的方式请移步至博主的另一篇文章<[windows]查询占用端口的程序——记一次解决webloigc启动失败的过程>. Eclipse之前是不占用7011端口的,这次占用估计可能是启动

java数据库连接池dbcp的使用

近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术. 在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁, 即Java语言通过JDBC技术访问数据库.JDBC是一种"开放"的方案,它

一个效果非常不错的JAVA数据库连接池

package studytest; ////    一个效果非常不错的JAVA数据库连接池.//    from:http://www.jxer.com/home/?uid-195-action-viewspace-itemid-332//    虽然现在用APACHE COMMONS DBCP可以非常方便的建立数据库连接池,//    但是像这篇文章把数据库连接池的内部原理写的这么透彻,注视这么完整,//    真是非常难得,让开发人员可以更深层次的理解数据库连接池,真是非常感//    谢