openGauss这么多工具?到底要选哪个?(1219)

55 阅读1分钟

#openGauss #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/

2. 从mybatis的mapper文件中提取sql,原始xml文件中占位符#{}使用1,1,2…进行替换,占位符${field}直接替换为filed。对于动态sql标签,沿用mybatis原本的提取规则,但并不对动态标签属性进行类型的校验,仅提取静态sql片段。提取规则及举例如下:

  1. 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)
    
  2. 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
    
  3. 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 #入门 #安装 #数据库 #开源

知识来源:docs-opengauss.osinfra.cn/zh/