求助!数据库Connection close一次 ,下次再连接就打不开了
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
错误是这样的,如果我不对Connection进行关闭,则不会出错,而如果我加了conn.close();之后,下一次再进来这边就会报错
大家帮帮我
MySQLDBUtil 数据库链接类
错误信息
错误是这样的,如果我不对Connection进行关闭,则不会出错,而如果我加了conn.close();之后,下一次再进来这边就会报错
大家帮帮我

/**
* 获取按钮事件
*
* @return
* @throws SQLException
*/
public List<AlarmData> getNewButtonStat2() throws SQLException {
List<AlarmData> list = new ArrayList<AlarmData>();
Connection conn = MySQLDBUtil.getConn();
Statement statement = conn.createStatement();
// 通过查询返回结果
ResultSet rs = statement
.executeQuery("SELECT id,bid,keyid,ttime,yn,status FROM(SELECT * FROM t_alarmdata WHERE bid BETWEEN 9 AND 12 ORDER BY ttime DESC LIMIT 2000) a GROUP BY a.bid,a.keyid");
// 循环取出 rs 中的结果
while (rs.next()) {
AlarmData ad = new AlarmData();
ad.setBid(rs.getString("bid"));
ad.setId(rs.getInt("id"));
ad.setKeyid(rs.getString("keyid"));
ad.setStatus(rs.getInt("status"));
ad.setYn(rs.getInt("yn"));
list.add(ad);
}
rs.close();
statement.close();
conn.close(); // 如果这里的不关闭,则没有错误信息,加上conn.close(); 下次再进来这里就会报如下错误
System.out.println(list.size());
return list;
}MySQLDBUtil 数据库链接类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class MySQLDBUtil {
// 本机
private static final String URL = "jdbc:mysql://127.0.0.1:3306/warning_light";
private static final String USER = "root";
private static final String PASSWORD = "888888";
private static Connection conn = null;
DBPool dbp = null;
static {
// 1.加载驱动(反射机制)
try {
Class.forName("com.mysql.jdbc.Driver");
// 2.获得数据库连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (ClassNotFoundException e) {
System.out.println("sorry,can't find the Driver!");
e.printStackTrace();
} catch (SQLException e) {
System.out.println(conn);
e.printStackTrace();
}
}
public MySQLDBUtil(){
}
public static Connection getConn() {
return conn;
}
}
错误信息
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.Util.getInstance(Util.java:381)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1098)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2380)
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2362)
// 第一段代码的11行
at com.lewei.dao.WarningLightDao.getNewButtonStat2(WarningLightDao.java:137)// 第一段代码的11行
at com.lewei.www.WarningScreen$6.doInBackground(WarningScreen.java:983)
at com.lewei.www.WarningScreen$6.doInBackground(WarningScreen.java:1)
at javax.swing.SwingWorker$1.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at javax.swing.SwingWorker.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
...全文
相关推荐
asp连接sqlserver数据库的几种方法
详细描述asp连接sqlserver数据库的几种方法
把 ABAP 的数据库连接玩明白:CL_SQL_CONNECTION 与 ADBC 的工程化用法
ABAP开发中,当需要访问多个数据库时,ADBC(ABAP Database Connectivity)提供了面向对象的Native SQL API。核心类CL_SQL_CONNECTION用于管理数据库连接,可连接中心库或通过DBCON表配置的额外数据库。连接对象可传递给CL_SQL_STATEMENT或CL_SQL_PREPARED_STATEMENT执行SQL。需要注意连接生命周期管理、事务边界控制以及跨数据库原子性问题。典型应用场景包括系统迁移期间数据比对、企业集成等。代码示例展示了如何使用seco
DB_Connection_Factory.rar_DB factory桥连接_factory
DB Connection Factory, Java数据库连接工厂类
js连接数据库!入门代码
非常使用的JS连接数据库例子!初学者首选!
java连接mysql数据库及测试是否连接成功的方法
主要介绍了java连接mysql数据库及测试是否连接成功的方法,结合完整实例形式分析了java基于jdbc连接mysql数据库并返回连接状态的具体步骤与相关操作技巧,需要的朋友可以参考下


Java SE
