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中的参数位置是问号拼接的!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐