mybatis编写xml时,怎么根据变量值,执行不同的sql语句?
mybatis编写xml时,怎么根据读取配置文件/内存对象的变量,执行动态的sql语句?
比如有一个全局配置类:
public class GlobalVariable {
public int databaseType; //数据库类型,1mysql,2达梦
}
然后xml文件实现类似下面的判断效果:
...
<select id="selectOne">
<if test="databaseType='1'">
...
</if>
<if test="databaseType='2'">
...
</if>
</select>
...
该需求主要要程序需要兼容mysql数据库和达梦数据库,但是两者的语句在某些场景下不同。
回复
1个回答

test
2024-06-21
mybatis 有自带的数据库厂商标识(databaseIdProvider)https://mybatis.net.cn/configuration.html#databaseIdProvider
<select id="selectAll" resultType="com.alen.trial.multilds.model.Multil" databaseId="mysql"> select * from multil </select> <select id="selectAll" resultType="com.alen.trial.multilds.model.Multil" databaseId="oracle"> select id from multil </select>
https://blog.csdn.net/zhaizhisheng/article/details/105834300
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容