5 mybatis 插件问题

六星官方社区工作人员 发布于 2019-12-30 15:50
阅读 952
收藏 0
分类:java开发

场景:项目里是多数据源(oracle, presto) 查询数据库是使用jdbc方式 ORM框架使用的是 mybatis,现在项目需要对presto的那部分dao 查询修改为 http post方式(传入SQL,和 URL 就可以返回查询结果集),

如果所有的 presto dao 都修改成不依赖mybatis 过于繁琐要重新封装SQL 和 结果集映射, 我想咨询是否可以重写mybatis插件的方式 针对 presto 数据源调用的时候 修改调用方式, sql封装和结果集映射还是继续交给mybatis。 这样理论上可以实现么?

最佳答案 2020-03-24 17:16

66
六星官方社区工作人员
六星官方社区工作人员

mybaits插件是使用代理模式对拦截的对象进行修改,可拦截的方法有Executor、StatementHandler、ParameterHandler、ResultSetHandler。这些都是在opensession()之后的操作,没法区分数据源。
如果要用插件的话你得在自定义插件里判断数据源

请先 登录 后评论