如何快速提取mybatis mapper里的sql语句

1 笨点,就是直接粘贴,手动去掉里面的判断语法

2 调用SqlSessionTemplate的方法

import org.mybatis.spring.SqlSessionTemplate;
String sql= sqlsessionTemplate.getConfiguration().getMappedStatement("com.test.TestMapper.selectByPrimaryKey").getBoundSql(map).getSql();
其中要注意的点有:
  • 1如何获取sqlSessionTemplate?
  1.     如果是传统spring-mybatis框架搭建的项目,在xml的配置文件中,我们有配置dataSource-->sqlSessionFactory-->sqlSessionTemplate,这样逐层注入,由spring来管理bean,要测试的话,就通过junit测试,启动项目加载,然后注入sqlSessionTemplate这个bean对象
  2.   如果是通过springboot搭建的项目,采用自动配置方式的话,springboot已经为我们配置好了这个bean,我们只需要在用到的地方直接注入即可
  3. 如果是springboot搭建的项目,并且为多数据配置,每个数据源配置类都各自显示定义了sqlSessionTemplate bean,就按需注入即可。
  • 2 关于方法的使用:

map为在需要做逻辑判断的地方,就需要传参来判断sql分支了;

sql语句的唯一标识要写全 包含namespace和句柄id

注意:传参只影响走的分支,最终sql中的参数位置是问号拼接的!

作者:lsx6766

来源:https://blog.csdn.net/lsx6766/article/details/103045866


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。