Skip to content

xbatis 支持的数据库类型

现已支持的数据库类型,如下表格所示,以下均进行了testcase测试,放心使用

数据库ID描述
mysqlMYSQLMySQL 数据库
mariadbMARIA_DB
oracleORACLEOracle数据库
db2DB2DB2 数据库
H2H2H2 数据库
postgresPGSQLPostgreSQL 数据库
sqlserverSQL_SERVERSQLServer 数据库
dmDM达梦数据库
kingbaseKING_BASE人大金仓据库
clickhouseCLICK_HOUSEclickhouse数据库(特性不支持)
sqliteSQLITEsqlite数据库
opengauss或gaussdbGAUSSopengauss或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