sql片段

作者: 幻影翔 | 来源:发表于2018-05-27 20:45 被阅读14次

定义sql片段

注意:不要将where标签放在sql片段

<sql id="query_user_where">
<!-- 如果 userQueryVo中传入查询条件,再进行sql拼接-->
<!-- test中userCustom.username表示从userQueryVo读取属性值-->
  <if test="userCustom!=null">
      <if test="userCustom.username!=null and userCustom.username!=''">
          and username like '%${userCustom.username}%'
      </if>
      <if test="userCustom.sex!=null and userCustom.sex!=''">
          and sex = #{userCustom.sex}
      </if>
            <!-- 其他查询条件 -->
  </if>
        <if test="ids!=null">
            <!-- 根据id集合查询用户信息 -->
            <!-- 最终拼接的效果:
            SELECT id ,username ,birthday  FROM USER WHERE username LIKE '%小明%' AND id IN (16,22,25)
            collection:集合的属性
            open:开始循环拼接的串
            close:结束循环拼接的串
            item:每次循环取到的对象
            separator:每两次循环中间拼接的串
             -->
             <foreach collection="ids" open=" AND id IN ( " close=")" item="id" separator=",">
                #{id}
             </foreach>
        </if>
</sql>

调用sql片段

<!-- 自定义查询条件查询用户的信息
parameterType:指定包装类型
%${userCustom.username}%:userCustom是userQueryVo中的属性,通过OGNL获取属性的值
 -->
<select id="findUserList" parameterType="userQueryVo" resultType="user">
    select id,username,birthday from user
    <!-- where标签相当 于where关键字,可以自动去除第一个and -->
    <where>
    <!-- 引用sql片段,如果sql片段和引用处不在同一个mapper必须前边加namespace -->
        <include refid="query_user_where"></include>
        <!-- 下边还有很其它的条件 -->
        <!-- <include refid="其它的sql片段"></include> -->
    </where>
</select>

相关文章

  • sql片段

    定义sql片段 注意:不要将where标签放在sql片段 调用sql片段

  • JDBC之API详解(Statement)

    Statement Statement作用: 执行SQL语句 执行SQL语句 测试代码片段

  • dynamic sql

    dynamic sql if if加where自动去掉多余的第一个and foreach sql片段

  • mybatis动态sql中test判断Boolean

    mybatis中动态sql使用if test判断String,pojo一般写法如下(sql片段): String ...

  • 常用SQL片段

    数据分析这项技能,不管是什么岗位,有总是加分项,一切都是为了数据,能从数据中发现机会那就更有优势了。 以下记录一些...

  • mybatis动态sql

    1.动态sql. UserMapper.xml 2.sql片段 2.1. 需求 将上面的动态sql判断代码抽取出来...

  • hive中with...as...的用法

    with...as...也叫做子查询部分,语句允许hive定义一个sql片段,供整个sql使用 简介 with.....

  • 如何降低SQL语句复杂度

    SQL语句复杂度的优化就是在结果正确的前提下,将复杂、难以维护的SQL语句拆分成独立、易懂的SQL片段,当然也要充...

  • <四> MyBatis的基本使用

    主要内容: 一、动态参数二、自定义结果映射三、SQL片段的使用四、动态SQL五、MyBatis级联操作六、延迟加载...

  • golang标准库database连接池实现

    所有代码片段我都做了省略,只保留了连接池的实现,如果要看完整的看官方库databases/sql/sql.goDB...

网友评论

    本文标题:sql片段

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