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 使用经验小结

  • 相关阅读:
    抽象工厂
    MVC模型验证+客户端验证
    模型绑定
    Linq 构建块
    Linq的简单应用_01
    简单的Jquery轮播
    实现自己的代码生成器
    JS练习--闭包
    node部署网页
    IE8-浏览器下iframe的动态onload事件处理
  • 原文地址:https://www.cnblogs.com/Gyoung/p/5540546.html
Copyright © 2011-2022 走看看