首先可以查阅一下 使用自定义方言,参考链接如下:自定义方言
然还有一种更简单方式,代码如下:
PageAutoDialect.registerDialectAlias("dm6", OracleDialect.class);
此处代码在SqlSessionFactory
创建之后执行即可。
原理说明:使用pageHelper
,不支持分页那么很明显,你使用的数据库非常规数据库了,例如我上面这个例子使用的是国产达梦数据库,所以它不支持。
达梦数据库的jdbc配置连接如下:
driverClassName: dm6.jdbc.driver.DmDriver
url: jdbc:dm6://127.0.0.1:12345/PSIDP
所以我的第一个参数是dm6
。
至于第二个参数为什么是 OracleDialect.class
,很明显,查了下官方手册,国产达梦数据库底层实现逻辑跟Oracle最像,所以使用了 OracleDialect.class
。
使用该方法,需要查查使用的非常规数据库的分页方式最像那个数据可了。
看了下源码,此处方言还支持以下数种:当前使用的是pagehelper-5.1.4.jar
这个版本。
registerDialectAlias("hsqldb", HsqldbDialect.class);
registerDialectAlias("h2", HsqldbDialect.class);
registerDialectAlias("postgresql", HsqldbDialect.class);
registerDialectAlias("phoenix", HsqldbDialect.class);
registerDialectAlias("mysql", MySqlDialect.class);
registerDialectAlias("mariadb", MySqlDialect.class);
registerDialectAlias("sqlite", MySqlDialect.class);
registerDialectAlias("oracle", OracleDialect.class);
registerDialectAlias("db2", Db2Dialect.class);
registerDialectAlias("informix", InformixDialect.class);
registerDialectAlias("informix-sqli", InformixDialect.class);
registerDialectAlias("sqlserver", SqlServerDialect.class);
registerDialectAlias("sqlserver2012", SqlServer2012Dialect.class);
registerDialectAlias("derby", SqlServer2012Dialect.class);