请详细描述需要增加的功能
如代码所示,希望 sqlserver 的方言默认设置为 DbType.SQL_SERVER 理由:1. DbType.SQL_SERVER2005 所用的分页方法效率低,并且目前sqlserver基本已经>2005版本,sqlserver2005及以下版本,官方以停止维护 2. jdbcUrl中,并不能使用 jdbc:sqlserver2012:XXX 这样来链接新版本sqlserver数据库
希望弃用 DbType.SQL_SERVER2005 版本, 期待采纳 感谢官方
public static DbType getDbType(String jdbcUrl) {
Assert.isFalse(StringUtils.isBlank(jdbcUrl), "Error: The jdbcUrl is Null, Cannot read database type");
String url = jdbcUrl.toLowerCase();
if (url.contains(":mysql:") || url.contains(":cobar:")) {
return DbType.MYSQL;
} else if (url.contains(":mariadb:")) {
return DbType.MARIADB;
} else if (url.contains(":oracle:")) {
return DbType.ORACLE;
} else if (url.contains(":sqlserver:") || url.contains(":microsoft:")) {
return DbType.SQL_SERVER2005;
} else if (url.contains(":sqlserver2012:")) {
return DbType.SQL_SERVER;
} else if (url.contains(":postgresql:")) {
return DbType.POSTGRE_SQL;
} else if (url.contains(":hsqldb:")) {
return DbType.HSQL;
} else if (url.contains(":db2:")) {
return DbType.DB2;
} else if (url.contains(":sqlite:")) {
return DbType.SQLITE;
} else if (url.contains(":h2:")) {
return DbType.H2;
} else if (url.contains(":lealone:")) {
return DbType.LEALONE;
} else if (regexFind(":dm\\d*:", url)) {
return DbType.DM;
} else if (url.contains(":xugu:")) {
return DbType.XU_GU;
} else if (regexFind(":kingbase\\d*:", url)) {
return DbType.KINGBASE_ES;
} else if (url.contains(":phoenix:")) {
return DbType.PHOENIX;
} else if (url.contains(":zenith:")) {
return DbType.GAUSS;
} else if (url.contains(":gbase:")) {
return DbType.GBASE;
} else if (url.contains(":gbasedbt-sqli:") || url.contains(":informix-sqli:")) {
return DbType.GBASE_8S;
} else if (url.contains(":gbase8s-pg:")){
return DbType.GBASE8S_PG;
} else if (url.contains(":gbase8c:")) {
return DbType.GBASE_8C;
} else if (url.contains(":ch:") || url.contains(":clickhouse:")) {
return DbType.CLICK_HOUSE;
} else if (url.contains(":oscar:")) {
return DbType.OSCAR;
} else if (url.contains(":sybase:")) {
return DbType.SYBASE;
} else if (url.contains(":oceanbase:")) {
return DbType.OCEAN_BASE;
} else if (url.contains(":highgo:")) {
return DbType.HIGH_GO;
} else if (url.contains(":cubrid:")) {
return DbType.CUBRID;
} else if (url.contains(":sundb:")) {
return DbType.SUNDB;
} else if (url.contains(":sap:")) {
return DbType.SAP_HANA;
} else if (url.contains(":impala:")) {
return DbType.IMPALA;
} else if (url.contains(":vertica:")) {
return DbType.VERTICA;
} else if (url.contains(":xcloud:")) {
return DbType.XCloud;
} else if (url.contains(":firebirdsql:")) {
return DbType.FIREBIRD;
} else if (url.contains(":redshift:")) {
return DbType.REDSHIFT;
} else if (url.contains(":opengauss:")) {
return DbType.OPENGAUSS;
} else if (url.contains(":taos:") || url.contains(":taos-rs:")) {
return DbType.TDENGINE;
} else if (url.contains(":informix")) {
return DbType.INFORMIX;
} else if (url.contains(":sinodb")) {
return DbType.SINODB;
} else if (url.contains(":uxdb:")) {
return DbType.UXDB;
} else if (url.contains(":trino:")) {
return DbType.TRINO;
} else if (url.contains(":presto:")) {
return DbType.PRESTO;
} else {
logger.warn("The jdbcUrl is " + jdbcUrl + ", Mybatis Plus Cannot Read Database type or The Database's Not Supported!");
return DbType.OTHER;
}
}
Comment From: ForeverNewbee
@nieqiurong
我的系统里主库是mysql,还有一个其他库是sql server2008,这个变更导致获取到的DbType为SqlServer,进而导致了获取到的dialect为Oracle12cDialect,而我需要的是SQLServer2005Dialect
现在我只能通过自定义一个分页插件,间接的去修复这个问题,强行把sqlserver指定为sqlserver2005,不然会报分页错误: