Skip to content

Commit

Permalink
完善静态变量赋值
Browse files Browse the repository at this point in the history
  • Loading branch information
abel533 committed Oct 7, 2021
1 parent 8b1d0fc commit 1e9e512
Showing 1 changed file with 10 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import com.github.pagehelper.AutoDialect;
import com.github.pagehelper.dialect.AbstractHelperDialect;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
import org.apache.ibatis.mapping.MappedStatement;

import javax.sql.DataSource;
Expand All @@ -19,37 +17,29 @@
* @author liuzh
*/
public class DataSourceNegotiationAutoDialect implements AutoDialect<String> {
public static final Log log = LogFactory.getLog(DataSourceNegotiationAutoDialect.class);
private static final List<DataSourceAutoDialect> autoDialects = new ArrayList<DataSourceAutoDialect>();
private static final List<DataSourceAutoDialect> AUTO_DIALECTS = new ArrayList<DataSourceAutoDialect>();
private Map<String, DataSourceAutoDialect> urlMap = new ConcurrentHashMap<String, DataSourceAutoDialect>();

/**
* 创建时,初始化所有实现,当依赖的连接池不存在时,这里不会添加成功,所以理论上这里包含的内容不会多,执行时不会迭代多次
*/
public DataSourceNegotiationAutoDialect() {
static {
//创建时,初始化所有实现,当依赖的连接池不存在时,这里不会添加成功,所以理论上这里包含的内容不会多,执行时不会迭代多次
try {
autoDialects.add(new HikariAutoDialect());
log.debug("HikariAutoDialect 初始化成功");
AUTO_DIALECTS.add(new HikariAutoDialect());
} catch (Exception ignore) {
}
try {
autoDialects.add(new DruidAutoDialect());
log.debug("DruidAutoDialect 初始化成功");
AUTO_DIALECTS.add(new DruidAutoDialect());
} catch (Exception ignore) {
}
try {
autoDialects.add(new TomcatAutoDialect());
log.debug("TomcatAutoDialect 初始化成功");
AUTO_DIALECTS.add(new TomcatAutoDialect());
} catch (Exception ignore) {
}
try {
autoDialects.add(new C3P0AutoDialect());
log.debug("C3P0AutoDialect 初始化成功");
AUTO_DIALECTS.add(new C3P0AutoDialect());
} catch (Exception ignore) {
}
try {
autoDialects.add(new DbcpAutoDialect());
log.debug("DbcpAutoDialect 初始化成功");
AUTO_DIALECTS.add(new DbcpAutoDialect());
} catch (Exception ignore) {
}
}
Expand All @@ -60,12 +50,12 @@ public DataSourceNegotiationAutoDialect() {
* @param autoDialect
*/
public static void registerAutoDialect(DataSourceAutoDialect autoDialect) {
autoDialects.add(autoDialect);
AUTO_DIALECTS.add(autoDialect);
}

@Override
public String extractDialectKey(MappedStatement ms, DataSource dataSource, Properties properties) {
for (DataSourceAutoDialect autoDialect : autoDialects) {
for (DataSourceAutoDialect autoDialect : AUTO_DIALECTS) {
String dialectKey = autoDialect.extractDialectKey(ms, dataSource, properties);
if (dialectKey != null) {
if (!urlMap.containsKey(dialectKey)) {
Expand Down

0 comments on commit 1e9e512

Please sign in to comment.