zoukankan      html  css  js  c++  java
  • Mybatis 总结

    1.如何传递多个参数

     mybatis中,如果接口有多个参数,那么在mapper.xml中,可以通过#{0,jdbcType=VARCHAR},#{1,jdbcType=VARCHAR}或#{param1,jdbcType=VARCHAR},#{param2,jdbcType=VARCHAR}来获取。

    2.加强版的分支、选择判断

    <select id="findActiveBlogLike"
     resultType="Blog">
     SELECT * FROM BLOG WHERE state = ‘ACTIVE’
     <choose>
     <when test="title != null">
     AND title like #{title}
     </when>
     <when test="author != null and author.name != null">
     AND author_name like #{author.name}
     </when>
     <otherwise>
     AND featured = 1
     </otherwise>
     </choose>
    </select>

    3.避免Where 空条件的尴尬

    <select id="findActiveBlogLike" resultType="Blog">
     SELECT * FROM BLOG
     <where>
         <if test="state != null">
             and state = #{state}
         </if>
     </where> 
    </select>

    4.$与#的区别

    1  select * from T_PRINT_LAYOUT where  D_RECID = ${recId}

    最后生成的SQL为:

    1 select * from T_PRINT_LAYOUT where  D_RECID = 1

    即:直接将参数值替换到了原来${recId}的位置,相当于硬拼SQL

    1  select * from T_PRINT_LAYOUT where  D_RECID = #{recid,jdbcType=DECIMAL}

    最后生成的SQL为:

    1 select * from T_PRINT_LAYOUT where  D_RECID = ?

    即:#{...}被识别为一个SQL参数

    参考:mybatis 使用经验小结

  • 相关阅读:
    【iOS
    【iOS】Swift ESTabBarController的使用
    【iOS
    【iOS】图表实现-Charts(二)
    【iOS】图表实现-Charts(一)
    【iOS】图表实现-AAChartKit
    【iOS】图表实现-总述
    【iOS
    【iOS
    整理下开发中常用的第三方库
  • 原文地址:https://www.cnblogs.com/Gyoung/p/5540546.html
Copyright © 2011-2022 走看看