springBoot+mybatis+pgsql 配置druid连接池,启动时出现resultset已关闭

springBoot+mybatis+pgsql 配置druid连接池,启动时出现resultset已关闭

初次使用druid连接池,按照网上的博文配置完成之后,莫名奇妙的出现了以下的错误,之后就去官网找demo重新配置,发现代码并没有什么问题,可报错信息依然存在。错误信息如下:

2018-03-21 16:59:30.603 [Druid-ConnectionPool-Create-1140697305] INFO  com.alibaba.druid.pool.DruidDataSource - put physical connection to pool failed.
2018-03-21 16:59:30.622 [Druid-ConnectionPool-Create-1140697305] ERROR com.alibaba.druid.pool.DruidDataSource - create connection holder error
org.postgresql.util.PSQLException: 这个 ResultSet 已经被关闭。
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2654)
    at org.postgresql.jdbc2.AbstractJdbc2ResultSet.setFetchSize(AbstractJdbc2ResultSet.java:1771)
    at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:39)
    at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1773)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:374)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.execSQLUpdate(AbstractJdbc2Connection.java:263)
    at org.postgresql.jdbc2.AbstractJdbc2Connection.getTransactionIsolation(AbstractJdbc2Connection.java:775)
    at com.alibaba.druid.pool.DruidConnectionHolder.<init>(DruidConnectionHolder.java:144)
    at com.alibaba.druid.pool.DruidConnectionHolder.<init>(DruidConnectionHolder.java:82)
    at com.alibaba.druid.pool.DruidDataSource.put(DruidDataSource.java:1870)
    at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2123)

于是开始查找原因:
- 有可能是数据源的问题,开始debug,表示两个数据源的初始化都以完成
- 经过排查,最终发现是因为postgresql的jar包问题,我使用的是sharding官方推荐的9.1-901-1.jdbc4,后来改为了42.1.4后,运行成功。

配置如下:

1. 添加maven依赖
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.1.0</version>
</dependency>
2. 添加 DruidStatViewServlet 
@WebServlet(urlPatterns="/druid/*",
    initParams = {
        @WebInitParam(name="allow",value=""),// IP白名单(没有配置或者为空,则允许所有访问)
        @WebInitParam(name="deny",value=""),// IP黑名单 (存在共同时,deny优先于allow)
        @WebInitParam(name="loginUsername",value="admin"),// 用户名
        @WebInitParam(name="loginPassword",value="admin"),// 密码
        @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
    }
)
public class DruidStatViewServlet extends StatViewServlet {
    private static final long serialVersionUID = -2688872071445249539L;
}
3. 添加 DruidStatFilter
@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*",
    initParams = {
        @WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")//忽略资源
    }
)
public class DruidStatFilter extends WebStatFilter {

}
4. 在 LogctApplication 启动类上添加  @ServletComponentScan 注解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值