mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-04 20:58:00 +08:00
添加了设置从绝对路径加载数据库配置文件的功能(特殊情况使用,比如写Minecraft插件的时候)
This commit is contained in:
parent
fa0395c607
commit
2a123d7b95
@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
|
|||||||
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.core.io.IoUtil;
|
||||||
import cn.hutool.db.dialect.Dialect;
|
import cn.hutool.db.dialect.Dialect;
|
||||||
import cn.hutool.db.dialect.DialectFactory;
|
import cn.hutool.db.dialect.DialectFactory;
|
||||||
|
import cn.hutool.db.ds.AbstractDSFactory;
|
||||||
import cn.hutool.db.ds.DSFactory;
|
import cn.hutool.db.ds.DSFactory;
|
||||||
import cn.hutool.db.sql.SqlLog;
|
import cn.hutool.db.sql.SqlLog;
|
||||||
import cn.hutool.log.Log;
|
import cn.hutool.log.Log;
|
||||||
@ -237,4 +238,14 @@ public final class DbUtil {
|
|||||||
public static void setReturnGeneratedKeyGlobal(boolean returnGeneratedKey) {
|
public static void setReturnGeneratedKeyGlobal(boolean returnGeneratedKey) {
|
||||||
GlobalDbConfig.setReturnGeneratedKey(returnGeneratedKey);
|
GlobalDbConfig.setReturnGeneratedKey(returnGeneratedKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置从绝对路径加载数据库配置文件
|
||||||
|
* (特殊情况使用,比如写Minecraft插件的时候)
|
||||||
|
*
|
||||||
|
* @param absolutePath 配置文件的绝对路径
|
||||||
|
*/
|
||||||
|
public static void setCustomizeDbSettingPath(String absolutePath) {
|
||||||
|
AbstractDSFactory.CUSTOMIZE_DB_SETTING_PATH = absolutePath;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,19 +20,30 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
* 数据源是与配置文件中的分组相关的,每个分组的数据源相互独立,也就是每个分组的数据源是单例存在的。
|
* 数据源是与配置文件中的分组相关的,每个分组的数据源相互独立,也就是每个分组的数据源是单例存在的。
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractDSFactory extends DSFactory {
|
public abstract class AbstractDSFactory extends DSFactory {
|
||||||
private static final long serialVersionUID = -6407302276272379881L;
|
private static final long serialVersionUID = -6407302276272379881L;
|
||||||
|
|
||||||
/** 数据库配置文件可选路径1 */
|
/**
|
||||||
|
* 数据库配置文件可选路径1
|
||||||
|
*/
|
||||||
private static final String DEFAULT_DB_SETTING_PATH = "config/db.setting";
|
private static final String DEFAULT_DB_SETTING_PATH = "config/db.setting";
|
||||||
/** 数据库配置文件可选路径2 */
|
/**
|
||||||
|
* 数据库配置文件可选路径2
|
||||||
|
*/
|
||||||
private static final String DEFAULT_DB_SETTING_PATH2 = "db.setting";
|
private static final String DEFAULT_DB_SETTING_PATH2 = "db.setting";
|
||||||
|
/**
|
||||||
|
* 自定义数据库配置文件路径(绝对路径,特殊情况使用,比如写Minecraft插件的时候)
|
||||||
|
*/
|
||||||
|
public static String CUSTOMIZE_DB_SETTING_PATH = null;
|
||||||
|
|
||||||
/** 数据库连接配置文件 */
|
/**
|
||||||
|
* 数据库连接配置文件
|
||||||
|
*/
|
||||||
private final Setting setting;
|
private final Setting setting;
|
||||||
/** 数据源池 */
|
/**
|
||||||
|
* 数据源池
|
||||||
|
*/
|
||||||
private final Map<String, DataSourceWrapper> dsMap;
|
private final Map<String, DataSourceWrapper> dsMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,6 +58,13 @@ public abstract class AbstractDSFactory extends DSFactory {
|
|||||||
super(dataSourceName);
|
super(dataSourceName);
|
||||||
//此参数的作用是在detectDSFactory方法自动检测所用连接池时,如果实现类不存在,调用此方法会自动抛出异常,从而切换到下一种连接池的检测。
|
//此参数的作用是在detectDSFactory方法自动检测所用连接池时,如果实现类不存在,调用此方法会自动抛出异常,从而切换到下一种连接池的检测。
|
||||||
Assert.notNull(dataSourceClass);
|
Assert.notNull(dataSourceClass);
|
||||||
|
if (CUSTOMIZE_DB_SETTING_PATH != null) {
|
||||||
|
try {
|
||||||
|
setting = new Setting(CUSTOMIZE_DB_SETTING_PATH, false);
|
||||||
|
} catch (NoResourceException e3) {
|
||||||
|
throw new NoResourceException("Customize db setting file [{}] not found !", CUSTOMIZE_DB_SETTING_PATH);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (null == setting) {
|
if (null == setting) {
|
||||||
try {
|
try {
|
||||||
setting = new Setting(DEFAULT_DB_SETTING_PATH, true);
|
setting = new Setting(DEFAULT_DB_SETTING_PATH, true);
|
||||||
@ -58,6 +76,13 @@ public abstract class AbstractDSFactory extends DSFactory {
|
|||||||
throw new NoResourceException("Default db setting [{}] or [{}] in classpath not found !", DEFAULT_DB_SETTING_PATH, DEFAULT_DB_SETTING_PATH2);
|
throw new NoResourceException("Default db setting [{}] or [{}] in classpath not found !", DEFAULT_DB_SETTING_PATH, DEFAULT_DB_SETTING_PATH2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (CUSTOMIZE_DB_SETTING_PATH != null) {
|
||||||
|
try {
|
||||||
|
setting = new Setting(CUSTOMIZE_DB_SETTING_PATH, false);
|
||||||
|
} catch (NoResourceException e3) {
|
||||||
|
throw new NoResourceException("Customize db setting file [{}] not found !", CUSTOMIZE_DB_SETTING_PATH);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 读取配置,用于SQL打印
|
// 读取配置,用于SQL打印
|
||||||
|
Loading…
Reference in New Issue
Block a user