mybatis的mapper.xml里面可以使用全局变量么

xigua1102 2017-02-06 06:38:12
小弟在学习springmvc开发
用了mybatis
但是最近发生一个事情,就是数据库修改,把表名也修改了
突然发现,要改很多地方,mapper里每句sql都带有表名
所以特地请教一下
这个表名,可以做成一个变量不,然后整个mapper里面都用这个变量
假如以后再发生修改表名的问题,该一处即可

我目前想到的办法是

<sql id="table_name">
mytablename
</sql>

然后在用表名的地方
<include refid="table_name"></include>
这样引入
但是感觉这个办法不太好
有没有更好的办法呢?
谢谢
...全文
3015 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DMY小天天 2021-07-14
  • 打赏
  • 举报
回复 1

新建立一个全局的敞亮实体类。

/**
 * @descpt: 全局变量
 */
public class GlobalVariableEntity {
    //系统代码
    public static final String xtdm = "'jwxt'";
}

然后在xml里这样引用就可以了。

select * from dual where xtdm=${@com.inco.GlobalVariableEntity@xtdm}
技术本 2021-07-19
  • 举报
回复
@DMY小天天 大哥,这可以获取properties中的动态配置吗
DMY小天天 2021-07-23
  • 举报
回复
@技术本 不能,这是java文件里面。这个就是固定常量的,修改常量值,需要重启项目
DMY小天天 2021-06-20
  • 打赏
  • 举报
回复
1,在application.properties文件中,加入如下开头的代码即可:
mybatis.configuration.variables.

2,案例:
mybatis.configuration.variables.xtdm='incons'

3,使用的地方调用:
<select id="querysfczryqx" resultType="int" >
    select count(*) from T_XT_YHJSQXB where yhdm=#{yhdm} and xtdm=${xtdm}
</select>

 

技术本 2021-07-13
  • 举报
回复
@DMY小天天 获取不到啊
DMY小天天 2021-07-14
  • 举报
回复
@技术本 估计你是哪里没有弄对,如果实在实在不行的话,你就建立一个专用的全局实体类就可以了。 比如这样,我新增一个回复,要不这里没有写代码的地方。
什么都不能 2017-02-07
  • 打赏
  • 举报
回复
引用 2 楼 xigua1102 的回复:
[quote=引用 1 楼 hanpoyangtitan 的回复:] 有什么意义呢?
怕以后又改表名,一次要改好几个地方,虽然可以直接使用替换,但是终究没有写成变量好[/quote]
引用 2 楼 xigua1102 的回复:
[quote=引用 1 楼 hanpoyangtitan 的回复:] 有什么意义呢?
怕以后又改表名,一次要改好几个地方,虽然可以直接使用替换,但是终究没有写成变量好[/quote] 表明怎么能够随便改呢?什么场景会改表名呢? 如果做了外键约束那就更不好改了。
xigua1102 2017-02-07
  • 打赏
  • 举报
回复
引用 1 楼 hanpoyangtitan 的回复:
有什么意义呢?
怕以后又改表名,一次要改好几个地方,虽然可以直接使用替换,但是终究没有写成变量好
qq_21355815 2017-02-07
  • 打赏
  • 举报
回复
sql 这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。比如: <sql id="userColumns"> id,username,password </sql> 这个 SQL 片段可以被包含在其他语句中,例如: <select id="selectUsers" parameterType="int" resultType="hashmap"> select <include refid="userColumns"/> from some_table where id = #{id}</select> http://blog.csdn.net/zhll3377/article/details/8203440
什么都不能 2017-02-06
  • 打赏
  • 举报
回复
有什么意义呢?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧