首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HikeriCP : java.sql.SQLException: Catalog在使用显式目录关闭连接时不能为null

HikeriCP : java.sql.SQLException: Catalog在使用显式目录关闭连接时不能为null
EN

Stack Overflow用户
提问于 2015-09-03 13:47:38
回答 1查看 329关注 0票数 1

我试图在java应用程序中使用HikariCP来实现到MySQL的连接池。

由于DB设计缺陷,应用程序使用不同的数据库,需要时我必须显式调用connection.setCatalog()来更改数据库。

当我试图关闭使用默认数据库(不调用setCatalog() )的连接时,一切正常,连接返回到池。但是,如果这是到另一个数据库的连接(使用setCatalog()),则在调用close()方法时会得到以下异常:

代码语言:javascript
运行
复制
java.sql.SQLException: Catalog can not be null
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
    at com.mysql.jdbc.ConnectionImpl.setCatalog(ConnectionImpl.java:5324)
    at com.zaxxer.hikari.pool.PoolElf.resetConnectionState(PoolElf.java:263)
    at com.zaxxer.hikari.pool.PoolBagEntry.resetConnectionState(PoolBagEntry.java:122)
    at com.zaxxer.hikari.proxy.ConnectionProxy.close(ConnectionProxy.java:193)
    at someapp.repository.MySqlRepository.closeConnection(MySqlRepository.java:198)...

不用说,我检查了目录是否为null:

代码语言:javascript
运行
复制
public void closeConnection() throws SQLException{
        System.out.println("trying to close with catalog:"+connection.getCatalog());

        if(connection!=null){

        //connection.setCatalog("defaultdb");
            connection.close();

        }
        this.connection=null;
    }

如果我取消注释connection.setCatalog("defaultdb")以将目录设置为默认,那么问题仍然存在。

只有当我根本不使用setCatalog()方法时,一切都很好。

当目录被显式设置时,这是hikaricp的问题吗?有没有办法关闭连接并将其发送回池?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-05 02:30:29

由于@brettw,要解决这个问题,您必须在HikariCP属性中设置默认目录:

代码语言:javascript
运行
复制
    HikariConfig conf = new HikariConfig();

    ....

    conf.setCatalog(DatabaseConfiguration.JDBC_DEFAULT_DATABASE);

    ds = new HikariDataSource(conf);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32377477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档