hutool 数据源创建
所属分类 hutool
浏览量 8
hutool-all 5.8.20
数据源默认配置文件
config/db.setting
创建数据源实现工厂
通过“试错”方式查找引入项目的连接池库,按照优先级寻找,
一旦寻找到则创建对应的数据源工厂
连接池优先级:Hikari > Druid > Tomcat > BeeCP > Dbcp > C3p0 > Hutool Pooled
public static DSFactory create(Setting setting) {
final DSFactory dsFactory = doCreate(setting);
log.debug("Use [{}] DataSource As Default", dsFactory.dataSourceName);
return dsFactory;
}
private static DSFactory doCreate(Setting setting) {
try {
return new HikariDSFactory(setting);
} catch (NoClassDefFoundError | NoSuchMethodError e) {
// ignore
}
try {
return new DruidDSFactory(setting);
} catch (NoClassDefFoundError | NoSuchMethodError e) {
// ignore
}
try {
return new TomcatDSFactory(setting);
} catch (NoClassDefFoundError | NoSuchMethodError e) {
//如果未引入包,此处会报org.apache.tomcat.jdbc.pool.PoolConfiguration未找到错误
//因为org.apache.tomcat.jdbc.pool.DataSource实现了此接口,会首先检查接口的存在与否
// ignore
}
try {
return new BeeDSFactory(setting);
} catch (NoClassDefFoundError | NoSuchMethodError e) {
// ignore
}
try {
return new DbcpDSFactory(setting);
} catch (NoClassDefFoundError | NoSuchMethodError e) {
// ignore
}
try {
return new C3p0DSFactory(setting);
} catch (NoClassDefFoundError | NoSuchMethodError e) {
// ignore
}
return new PooledDSFactory(setting);
}
cn.hutool.db.ds.pooled.PooledDataSource
cn.hutool.db.ds.simple.SimpleDataSource
简易数据源,没有使用连接池,仅供测试或打开关闭连接非常少的场合使用!
上一篇
数据库的关键字和保留字
《用心带孩子:为人父母不可不知的十门必修课》笔记
Docker 网络 面试题及答案