为什么要怎么做
有这么一个应用场景:需要在Mybatis框架上进行多个连接池的配置,然后进行多种SQL语句的测试,因为有些SQL语句的结构比较复杂,有些会涉及到很多group by
、join
操作还有一些聚集函数的使用,同时数据量又较大。
在这种情况下,常规的Mybatis面对对象进行操作的办法就不再试适用,查看Mybatis官方手册,提供了SQL构造器的办法也会有较的工作量,所以选择直接执行SQL语句(那为啥不用JDBC呢?笑)
遇到的坑
凭我记忆中对Mybatis的用法,似乎并没有这么用的,去网上搜,居然真的存在这种用法,但是讲的大多含糊其辞,晕了一下午也没让我找到正确的做法(真心给跪),这里给出链接
- 将SQL当作SqlSession执行的参数:使用SqlSession的selectList()
方法,传入的参数是SQL,当然需要在Bean的mapper xml配置文件中修改parameterType
类型为String,同时因为String不支持getter和setter操作,手动封装一个包装类SQLAdapter
虽然看起来似乎可以,但是还是会存在坑的,即“SqlSession对象如何调用selectList()方法来传入SQL语句?”。一开始是直接