Chris2018998 / beecp

A small JDBC Connection pool
Apache License 2.0
88 stars 18 forks source link

Database can not be null #61

Open 281743556 opened 2 years ago

281743556 commented 2 years ago

因为业务需要,会基于参数变更connection的catalog。 默认不设置catalog,连接如下: 127.0.0.1:3306/?useUnicode=true&useSSL=false 在设置catalog后,beecp执行完SQL,关闭connection时,通过recycleSelf调用resetRawConn按照defCatalog进行复位。上述情况,在复位时,会抛出异常:java.sql.SQLException: Database can not be null 产生如下问题: 1、出于什么考虑,再会connection关闭后进行复位? 2、是否可以关闭该复位?

Chris2018998 commented 2 years ago

这个异常是由Mysql驱动报的 1 :复位主要是避免Connection的上脏属性带给下一个使用使用者 2:这个问题的最佳的解决办法就是设置一个默认的catalog

Chris2018998 commented 2 years ago

去掉了catalog的复位的版本

https://github.com/Chris2018998/BeeCP/blob/master/doc/release/custom/beecp-3.3.1_No_catlog.jar

如果有什么问题,可以再提出。

Chris2018998 commented 2 years ago

新版的catlog,schema的默认值是空的,将会从第一个连接上读取值并视作默认值,在这种情形下,如果这两个默认值还是空,那么就没有复位操作了。

新版还在测试中,过段时间会发布,

Chris2018998 commented 10 months ago

数据源配置有一个catlog的是否启用的开关,默认是支持,如果你不想支持,设置该变量为false即可,看下图

图片