首页  

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 网络 面试题及答案