xbatis 支持的数据库类型
现已支持的数据库类型,如下表格所示,以下均进行了testcase测试,放心使用
| 数据库 | ID | 描述 |
|---|---|---|
| mysql | MYSQL | MySQL 数据库 |
| mariadb | MARIA_DB | |
| oracle | ORACLE | Oracle数据库 |
| db2 | DB2 | DB2 数据库 |
| H2 | H2 | H2 数据库 |
| postgres | PGSQL | PostgreSQL 数据库 |
| sqlserver | SQL_SERVER | SQLServer 数据库 |
| dm | DM | 达梦数据库 |
| kingbase | KING_BASE | 人大金仓据库 |
| clickhouse | CLICK_HOUSE | clickhouse数据库(特性不支持) |
| sqlite | SQLITE | sqlite数据库 |
| opengauss或gaussdb | GAUSS | opengauss或gaussdb数据库 |
数据库 ID 用于yml里配置
Oracle 12c以下版本数据库怎么配置?
启动时,设置分页处理器(处理器由官网提供)
java
XbatisGlobalConfig.setPagingProcessor(DbType.ORACLE, new OracleRowNumPagingProcessor());SQLServer 2012以下版本数据库怎么配置?
启动时,设置分页处理器(处理器由官网提供)
java
XbatisGlobalConfig.setPagingProcessor(DbType.SQL_SERVER, new SQLServerRowNumberOverPagingProcessor());其他数据如何支持
目前其他数据基本都是扩展MYSQL/PostgreSQL数据库居多;这样的话 可以通过自定义数据解析器返回同类型的DbType;原理就是根据jdbcUrl识别是那种数据库
数据库解析器 DbTypeParser
假如 xxx数据库是基于PostgreSQL扩展的
java
public class MyDbTypeParser extends DefaultDbTypeParser {
//注意 jdbcUrl 是全小写的
protected DbType getDbType(String jdbcUrl){
DbType dbType = super.getDbType(jdbcUrl);
if(dbType!=null){
return dbType;
}
//此处识别xxx数据库
if (jdbcUrl.contains(":xxx:")) {
return DbType.PGSQL;
}
return null;
}
}设置数据库解析器 DbTypeParser (大功告成)
java
@Configuration
public class XbatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return (configuration) -> {
XbatisGlobalConfig.setDbTypeParser(new MyDbTypeParser());
};
}
}
```java