This commit is contained in:
wujl 2023-07-12 10:26:44 +08:00
parent 7eddbbf972
commit dfe5a2a791
4 changed files with 23 additions and 0 deletions

View File

@ -163,6 +163,10 @@ public enum DbType {
* Informix
*/
INFORMIX("informix", "Informix 数据库"),
/**
* sinodb
*/
SINODB("sinodb", "Informix 数据库"),
/**
* uxdb
*/

View File

@ -160,6 +160,8 @@ public class DbTypeUtil {
return DbType.TDENGINE;
} else if (jdbcUrl.contains(":informix")) {
return DbType.INFORMIX;
}else if (jdbcUrl.contains(":sinodb")) {
return DbType.SINODB;
} else if (jdbcUrl.contains(":uxdb:")) {
return DbType.UXDB;
} else if (jdbcUrl.contains(":greenplum:")) {

View File

@ -138,6 +138,8 @@ public class DialectFactory {
return new CommonsDialectImpl(KeywordWrap.SQUARE_BRACKETS, LimitOffsetProcessor.SQLSERVER_2005);
case INFORMIX:
return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.INFORMIX);
case SINODB:
return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.SINODB);
case SYBASE:
return new CommonsDialectImpl(KeywordWrap.DOUBLE_QUOTATION, LimitOffsetProcessor.SYBASE);
default:

View File

@ -156,6 +156,21 @@ public interface LimitOffsetProcessor {
return sql;
};
/**
* SINODB 的处理器
* 适合 {@link DbType#INFORMIX}
*/
LimitOffsetProcessor SINODB = (dialect, sql, queryWrapper, limitRows, limitOffset) -> {
if (limitRows != null && limitOffset != null) {
// SELECT SKIP 2 FIRST 1 * FROM
sql.insert(6, SKIP + limitOffset + FIRST + limitRows);
} else if (limitRows != null) {
sql.insert(6, FIRST + limitRows);
}
return sql;
};
/**
* Firebird 的处理器
* 适合 {@link DbType#FIREBIRD}