fix beeCp bug

This commit is contained in:
Looly 2021-05-25 11:25:55 +08:00
parent fd090664dd
commit 09e2df8248
2 changed files with 15 additions and 2 deletions

View File

@ -25,7 +25,7 @@
<hikariCP.version>2.4.13</hikariCP.version> <hikariCP.version>2.4.13</hikariCP.version>
<mongo.version>3.12.8</mongo.version> <mongo.version>3.12.8</mongo.version>
<sqlite.version>3.34.0</sqlite.version> <sqlite.version>3.34.0</sqlite.version>
<hsqldb.version>2.6.0</hsqldb.version> <hsqldb.version>2.5.2</hsqldb.version>
<jedis.version>3.6.0</jedis.version> <jedis.version>3.6.0</jedis.version>
</properties> </properties>
@ -80,7 +80,7 @@
<dependency> <dependency>
<groupId>com.github.chris2018998</groupId> <groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId> <artifactId>beecp</artifactId>
<version>3.2.1</version> <version>3.1.2</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId>

View File

@ -2,11 +2,13 @@ package cn.hutool.db.ds.bee;
import cn.beecp.BeeDataSource; import cn.beecp.BeeDataSource;
import cn.beecp.BeeDataSourceConfig; import cn.beecp.BeeDataSourceConfig;
import cn.beecp.TransactionIsolationLevel;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.db.ds.AbstractDSFactory; import cn.hutool.db.ds.AbstractDSFactory;
import cn.hutool.setting.Setting; import cn.hutool.setting.Setting;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.sql.Connection;
/** /**
* BeeCP数据源工厂类 * BeeCP数据源工厂类
@ -42,6 +44,17 @@ public class BeeDSFactory extends AbstractDSFactory {
} }
} }
// since BeepCP 3.2.1 bugSqlite下默认Transaction Isolation不支持在此判断修正
if(StrUtil.containsIgnoreCase(jdbcUrl, "sqlite")){
final int isolationCode = beeConfig.getDefaultTransactionIsolationCode();
if(Connection.TRANSACTION_READ_UNCOMMITTED != isolationCode
&& Connection.TRANSACTION_SERIALIZABLE != isolationCode){
// SQLite只支持这两种事务
beeConfig.setDefaultTransactionIsolation(TransactionIsolationLevel.LEVEL_READ_UNCOMMITTED);
beeConfig.setDefaultTransactionIsolationCode(Connection.TRANSACTION_READ_UNCOMMITTED);
}
}
return new BeeDataSource(beeConfig); return new BeeDataSource(beeConfig);
} }
} }