jfinal连接oracle_使用JFinal默认的连接池连接Oracle,在空闲一段时间后,会断开连接。...

在使用JFinal框架默认的Druid连接池连接Oracle数据库时,发现空闲一段时间后,连接会被断开,导致程序出现SQLRecoverableException异常。错误日志显示为关闭的连接。此问题可能由于数据库连接超时引起。尝试调整Druid连接池配置,如设置validationQuery和testOnBorrow属性,确保连接在使用前进行有效性校验,以防止使用已关闭的连接。
摘要由CSDN通过智能技术生成

使用JFinal默认的连接池连接Oracle,在空闲一段时间后,会断开连接。后台报如下错误:[ERROR]-[Thread: http-nio-7024-exec-10]-[com.alibaba.druid.util.JdbcUtils.close()]: close statement error

java.sql.SQLRecoverableException: 关闭的连接

at oracle.jdbc.driver.PhysicalConnection.needLine(PhysicalConnection.java:5389)

at oracle.jdbc.driver.OracleStatement.closeOrCache(OracleStatement.java:1578)

at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:1563)

at oracle.jdbc.driver.OracleStatementWrapper.close(OracleStatementWrapper.java:94)

at com.alibaba.druid.filter.FilterChainImpl.statement_close(FilterChainImpl.java:2386)

at com.alibaba.druid.filter.stat.StatFilter.statement_close(StatFilter.java:311)

at com.alibaba.druid.filter.FilterChainImpl.statement_close(FilterChainImpl.java:2383)

at com.alibaba.druid.filter.FilterAdapter.statement_close(FilterAdapter.java:2447)

at com.alibaba.druid.filter.FilterChainImpl.statement_close(FilterChainImpl.java:2383)

at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.close(StatementProxyImpl.java:124)

at com.alibaba.druid.util.JdbcUtils.close(JdbcUtils.java:92)

at com.alibaba.druid.pool.DruidAbstractDataSource.testConnectionInternal(DruidAbstractDataSource.java:1259)

at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:928)

at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4544)

at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:661)

at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4540)

at com.alibaba.druid.filter.FilterAdapter.dataSource_getConnection(FilterAdapter.java:2724)

at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4540)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:880)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:872)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:97)

at com.jfinal.plugin.activerecord.Config.getConnection(Config.java:203)

at com.jfinal.plugin.activerecord.Model.find(Model.java:583)

at com.jfinal.plugin.activerecord.Model.findFirst(Model.java:606)

at com.zshsoft.yshis.web.db.model.BaseModel.doFindFirst(BaseModel.java:354)

at com.zshsoft.yshis.web.db.model.BaseModel.doFindFirst(BaseModel.java:368)

at com.zshsoft.yshis.service.system.KW05Service.login(KW05Service.java:35)

at com.zshsoft.yshis.controller.login.MedicalLoginController.login(MedicalLoginController.java:32)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:601)

at com.jfinal.aop.Invocation.invoke(Invocation.java:73)

at com.zshsoft.yshis.web.intercept.LoginInterceptor.intercept(LoginInterceptor.java:57)

at com.jfinal.aop.Invocation.invoke(Invocation.java:67)

at com.zshsoft.yshis.web.intercept.ThreadLocalIntercept.intercept(ThreadLocalIntercept.java:29)

at com.jf

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package druidJDBCUtils; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class DruidJDBCUtils { //定义成员变量 private static DataSource ds; //静态代码块加载配置文件 static { try { Properties prop = new Properties(); InputStream is = DruidJDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"); prop.load(is); ds = DruidDataSourceFactory.createDataSource(prop); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } /** * 获取数据库连接对象 */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /** * 获取连接池方法 */ public static DataSource getDataSource(){ return ds; } /** * 关闭资源方法 * close()查询sql方法 */ public static void close(ResultSet resultSet, Statement statement, Connection connection) { if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭资源方法 * close()增删改sql方法 */ public static void close(Statement statement, Connection connection) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值