java.sql.SQLException:连接已关闭

时间:2014-08-06 12:23:05

标签: java oracle ojdbc

我正在制作一个石英线程应用程序,它从表中收集数据并在插入后将其插入另一个表中更新数据库
但是当我得到上述错误时,我在表格中插入了两次数据

请注意:
1. 我使用Oracle DB
2. ** OJDBC6.jar 连接**
3.all表在同一模式中

堆栈跟踪:

java.sql.SQLException: Connection is closed. 
        at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.checkOpen(PoolingDriver.java:263) 
        at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.close(PoolingDriver.java:268) 
        at com.sender.gsm.dao.Dao.closeConnection(Dao.java:38) 
        at com.sender.gsm.dao.OutDataDao.insertData(OutDataDao.java:91) 
        at com.sender.gsm.jobs.DataHandler.execute(DataHandler.java:49) 
        at org.quartz.core.JobRunShell.run(JobRunShell.java:213) 
        at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)

关闭连接功能

public void closeConnection(Connection conn) throws SQLException {
        if (conn != null ) {
            conn.close();
        }
    }

1 个答案:

答案 0 :(得分:4)

  

at com.sender.gsm.dao.Dao.closeConnection(Dao.java:38)   在com.sender.gsm.dao.OutDataDao.insertData(OutDataDao.java:91)

从堆栈跟踪中,您在选择后执行插入时关闭连接。尝试创建新连接。

您可能在select语句之后调用了closeConnection()方法。因此,当它尝试执行查询时连接已关闭时,会在运行时抛出异常。

如果您使用连接池,请确保已将maxIdlemaxActive参数配置为合理的值