#openGauss #入门 #安装 #数据库 #开源
知识来源:docs-opengauss.osinfra.cn/zh/
2. 从mybatis的mapper文件中提取sql,原始xml文件中占位符#{}使用2…进行替换,占位符${field}直接替换为filed。对于动态sql标签,沿用mybatis原本的提取规则,但并不对动态标签属性进行类型的校验,仅提取静态sql片段。提取规则及举例如下:
-
foreach标签
<select id="queryDataByIds" resultType="com.wang.test.demo.entity.User"> select * from user where id in <foreach collection="list" item="item" open="(" separator="," close=")"> #{item} </foreach> </select> 提取结果:select * from user where id in ($0) -
if标签
对if标签的提取规则为:将每个if标签中的sql片段提取后进行拼接得到最终的sql。
<select id="queryDataBySearch" resultType="com.wang.test.demo.entity.User"> select * from user where stage = 'A' <if test="age != null and age != ''"> and age =#{age} </if> <if test="name != null and name != ''"> and name =#{name} </if> </select> 提取结果:select * from user where stage = 'A' and age = $0 and name = $1 -
choose、when、otherwise标签
提取choose标签中首个when标签的内容。
<select id="queryDataBySearchNew" resultType="com.wang.test.demo.entity.User"> select * from user <where> <choose> <when test="age != null and age != ''"> and age =#{age} </when> <when test="name != null and name != ''"> and name =#{name} </when> <otherwise> stage = 'A' </otherwise> </choose> </where> </select> 提取结果:select * from user where age = $1
#openGauss #入门 #安装 #数据库 #开源