springboot配置跨mapper.xml的全局变量

x33g5p2x  于2021-11-27 转载在 Spring  
字(0.9k)|赞(0)|评价(0)|浏览(480)

springboot配置跨mapper.xml的全局变量

有这样的需求,mybatis框架的mapper.xml,即映射文件里,如果需要配置一个全局变量,然后,在所有的mapper.xml里都能拿到使用。

这需求也不苛刻吧~

后来查了下,发现对于springboot来说,配置这个竟然太简单。

因为是在mapperxml里引用这个全局变量,所以mybatis框架必须要先配置成功,如果不知道springboot的mybatis配置,可以参考这篇[spring boot配置mybatis和事务管理];

配置mapper.xml的全局变量

仅仅需要在配置的mybatis框架成功的基础之上,配置文件application.properties里添加如下:

mybatis.configuration.variables.myConfigName=b

我是放到了与mybatis配置放在了一起,具体如下:

mybatis.mapper-locations=classpath:mapper/*/*Mapper.xml
mybatis.type-aliases-package=znxd.tjzb.model.*
mybatis.configuration.mapUnderscoreToCamelCase=true
mybatis.configuration.variables.myConfigName=b1

其中myConfigName就是全局变量的名,b1即是对应的值。

mapper.xml引用全局变量

在随便一个mapper.xml里,如下这样引用:

<select id="selectTest" resultType="java.util.Map">
      select * from ${myConfigName}
  </select>

即,使用的是${}来引用配置的全局变量,这样就可以使用了。

有个小问题:

直接使用${myConfigName}可以获取到,但是如果我在if标签中获取myConfigName的值进行判断时,就会报错,找不到参数

原因:if标签的参数好像只能是method方法中传入的值,获取不到全局参数,自己的理解,可能不准确。

相关文章

微信公众号

最新文章

更多