人大金仓:merge sql error, dbType null, druid-1.2.20
目录
- 一、 出现场景
- 二、 解决方案
- 三、数据库类型
一、 出现场景
在springboot中,如果使用人大金仓的数据库作为从库,有一些SQL在执行的过程中虽然报错,但是可以正常入库,这是因为springboot默认数据库模式的问题。
二、 解决方案
找到框架中的com.zhak.framework.config.DruidConfig
,修改如下配置
@Bean
@ConfigurationProperties("spring.datasource.druid.slave")
@ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
public DataSource slaveDataSource(DruidProperties druidProperties)
{DruidDataSource dataSource = DruidDataSourceBuilder.create().build();dataSource.setDbType(DbType.postgresql); // 设置数据库类型return druidProperties.dataSource(dataSource);
}
三、数据库类型
DbType 值 | 对应数据库 | 说明 |
---|---|---|
mysql | MySQL | 包括 MariaDB |
oracle | Oracle | |
kingbase8 | 人大金仓(Kingbase) | 基于 PostgreSQL 开发 |
postgresql | PostgreSQL | |
sqlserver | SQL Server | |
db2 | IBM DB2 | |
h2 | H2 数据库 | 嵌入式数据库 |
sqlite | SQLite | 轻量级嵌入式数据库 |