本文主要是介绍springboot+PageHelper在多数据源的情况下,数据库方言乱套怎么解决?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
web项目必然会涉及到数据分页,而PageHelper是个不错的插件,能方便不少事。
在最近的一个项目中,需要聚合多方数据,就涉及到配置多数据源(各方使用的不是一种类型的数据库),开始以为正常配置就好了,结果问题了,就是数据的分页错了,不是报oracle数据库使用了limit,就是mysql数据库使用了rownum,还有比如mysql 的分页写法是limit 10,10 而pgsql的写法是limit 10 offset 10 数据库方言乱了。
这里不讲怎么配置多数据源,仅仅标注在处理不同数据库厂商的多数据源时,PageHelper隐藏的一个坑。
坑:正常通过@bean配置的方言信息没有其效果(不是没起效果,只是在程序运行中,方言配置没有动态切换,导致始终使用的是最先执行的那套),只能通过配置文件配置。
pagehelper:autoRuntimeDialect: true
还好pagehelper插件支持配置文件参数配置,在查询的过程中能够自动识别数据源的类型,从而生成相应的查询sql,而不报错。
这篇关于springboot+PageHelper在多数据源的情况下,数据库方言乱套怎么解决?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!