美文网首页
Mybatis生成的Mapper文件中使用变量

Mybatis生成的Mapper文件中使用变量

作者: 龙腾九天ly | 来源:发表于2022-08-09 09:13 被阅读0次

问题的产生

在公司某项目进行国产化适配的工作时,发现原来使用MySQL数据库的项目,切换到神通数据库后,所有的数据库操作都会报错,大体意思是找不到表。但是数据库已经通过工具完成了数据迁移工作,而且连接信息准确无误。最后得知,在使用神通数据库进行数据库操作时,要指明视图名和表名,方可进行操作,而使用mybatis生成的mapper中的sql是这样的:

WPS图片.png

只有表名而没有视图名,由于有很多自定义的方法写在了mapper文件中,使用Mybatis重新生成工作量也不小,所以这里采用了手动添加Schema的方式。

当项目代码顺利完成了国产化适配后,开始以此为底,改编成各种项目,这些项目都有两个共同特点:1是不采用国产数据库,还是回归MySQL,2就是每个项目的Schema都不一样。由此引出的问题是,手动修改xml文件中的schema工作量特别大,所以我在想,有没有可能通过全局变量或者配置文件的方式,可以相对灵活配置这个值呢?

全局变量法

全局变量法是通过新建一个全局的实体类,在里面定义一个公共变量。

WPS图片.png

随后在mapper.xml里这样使用

WPS图片.png

需要在xml文件中,通过路径指定类,再指定类中的变量进行使用。这样做的缺点在于,1是维护比较麻烦,如果项目已经上线,需要修改代码重新打包部署才能生效。2.相对于配置文件法,使用方法相对复杂。

配置文件法

配置文件法是通过在application.properties配置文件中定义指定格式的变量,然后在xml文件中使用。配置文件中的信息如下:

WPS图片.png

在xml文件中的使用方法如下

WPS图片.png

如果需要修改,则修改配置文件并重启即可生效

相关文章

网友评论

      本文标题:Mybatis生成的Mapper文件中使用变量

      本文链接:https://www.haomeiwen.com/subject/xvwowrtx.html