在项目中遇到需要切换成国产化达梦数据库(DM8),在切换过程中遇到较多的问题,记录一下。
1、首先在在pom文件中引入DM8依赖:
<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm8JdbcDriver18</artifactId>
<version>8.1.1.49</version>
</dependency>
2、在application.yml文件中引入DM8驱动:
spring:
datasource:
driver-class-name: dm.jdbc.driver.DmDriver
3、数据库连接配置(自动加载配置文件中数据库的连接信息,数据库连接信息随着环境的不同,可灵活加载):
@Configuration
@Slf4j
public class MybatisConfig {
@Autowired
private DataSourceProperties dataSourceProperties;
/**
* 获取数据库配置文件
*/
private ComponentConfig componentConfig = ApplicationContextExt.getComponentConfig();
@Bean(name = "dataSource")
public DruidDataSource DMDataSource() {
//配置数据源
DruidDataSource dataSource = new DruidDataSource();
String driverClassName = dataSourceProperties.getDriverClassName();
dataSource.setDriverClassName(driverClassName);
// 获取数据库配置
SegmentConfig dbConfig = componentConfig.getSegmentSelf(componentConfig.getDbId());
String dbIP = dbConfig.getProperty("db.ip");
String dbPort = dbConfig.getProperty("db.port");
String dbName = dbConfig.getProperty("db.name");
String dbUserName = dbConfig.getProperty("db.username");
String dbPassword = dbConfig.getProperty("db.password");
String url = "jdbc:dm://" + dbIP + ":" + dbPort + "/" + dbName + "?useUnicode=true&characterEncoding=utf-8";
dataSource.setUrl(url);
dataSource.setUsername(dbUserName);
dataSource.setPassword(dbPassword);
return dataSource;
}
public SqlSessionFactory sqlSessionFactory() throws Exceptio