增加显示加载驱动方法.
This commit is contained in:
parent
864aad6132
commit
f6f98718f3
@ -16,6 +16,7 @@
|
||||
package com.baomidou.mybatisplus.generator.config;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.DbType;
|
||||
import com.baomidou.mybatisplus.core.toolkit.ClassUtils;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
|
||||
import com.baomidou.mybatisplus.generator.config.converts.TypeConverts;
|
||||
@ -127,6 +128,13 @@ public class DataSourceConfig {
|
||||
*/
|
||||
private ITypeConvertHandler typeConvertHandler;
|
||||
|
||||
/**
|
||||
* 驱动全类名
|
||||
*
|
||||
* @since 3.5.8
|
||||
*/
|
||||
private String driverClassName;
|
||||
|
||||
/**
|
||||
* 获取数据库查询
|
||||
*/
|
||||
@ -136,8 +144,7 @@ public class DataSourceConfig {
|
||||
DbType dbType = getDbType();
|
||||
DbQueryRegistry dbQueryRegistry = new DbQueryRegistry();
|
||||
// 默认 MYSQL
|
||||
dbQuery = Optional.ofNullable(dbQueryRegistry.getDbQuery(dbType))
|
||||
.orElseGet(() -> dbQueryRegistry.getDbQuery(DbType.MYSQL));
|
||||
dbQuery = Optional.ofNullable(dbQueryRegistry.getDbQuery(dbType)).orElseGet(() -> dbQueryRegistry.getDbQuery(DbType.MYSQL));
|
||||
}
|
||||
return dbQuery;
|
||||
}
|
||||
@ -331,6 +338,11 @@ public class DataSourceConfig {
|
||||
return typeConvertHandler;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getDriverClassName() {
|
||||
return driverClassName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据库配置构建者
|
||||
*
|
||||
@ -466,6 +478,19 @@ public class DataSourceConfig {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定连接驱动
|
||||
* <li>对于一些老驱动(低于4.0规范)没有实现SPI不能自动加载的,手动指定加载让其初始化注册到驱动列表去.</li>
|
||||
*
|
||||
* @param className 驱动全类名
|
||||
* @return this
|
||||
* @since 3.5.8
|
||||
*/
|
||||
public Builder driverClassName(@NotNull String className) {
|
||||
ClassUtils.toClassConfident(className);
|
||||
this.dataSourceConfig.driverClassName = className;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建数据库配置
|
||||
|
@ -33,6 +33,19 @@ public class DataSourceConfigTest {
|
||||
Assertions.assertEquals(dataSourceConfig.getSchemaName(), "mp");
|
||||
Assertions.assertEquals(dataSourceConfig.getDbType(), DbType.H2);
|
||||
Assertions.assertEquals(dataSourceConfig.getDbQuery().getClass(), MySqlQuery.class);
|
||||
Assertions.assertNotNull(dataSourceConfig.getKeyWordsHandler());
|
||||
Assertions.assertEquals(dataSourceConfig.getKeyWordsHandler().getClass(), MySqlKeyWordsHandler.class);
|
||||
Assertions.assertEquals(dataSourceConfig.getTypeConvert().getClass(), PostgreSqlTypeConvert.class);
|
||||
|
||||
dataSourceConfig = new DataSourceConfig.Builder("jdbc:h2:mem:test;MODE=mysql;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE", "sa", "")
|
||||
.dbQuery(new MySqlQuery()).schema("mp").keyWordsHandler(new MySqlKeyWordsHandler()).typeConvert(new PostgreSqlTypeConvert())
|
||||
.driverClassName("org.h2.Driver")
|
||||
.build();
|
||||
Assertions.assertEquals(dataSourceConfig.getSchemaName(), "mp");
|
||||
Assertions.assertEquals(dataSourceConfig.getDbType(), DbType.H2);
|
||||
Assertions.assertEquals(dataSourceConfig.getDbQuery().getClass(), MySqlQuery.class);
|
||||
Assertions.assertNotNull(dataSourceConfig.getKeyWordsHandler());
|
||||
Assertions.assertEquals(dataSourceConfig.getDriverClassName(), "org.h2.Driver");
|
||||
Assertions.assertEquals(dataSourceConfig.getKeyWordsHandler().getClass(), MySqlKeyWordsHandler.class);
|
||||
Assertions.assertEquals(dataSourceConfig.getTypeConvert().getClass(), PostgreSqlTypeConvert.class);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user