日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

myBatis中实用技巧

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 myBatis中实用技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

技巧一:

  • 把查詢的字段,查詢的條件單獨寫在一起,使用 <sql></sql>標簽定義,使用<include></include>標簽引用
<!-- 查詢的字段 --> <sql id="Base_Column_List" >id, name </sql><!-- 查詢的條件 --> <sql id="QUERY"><where><if test="id != null">AND id = #{id,jdbcType=INTEGER}</if><if test="name != null">AND name= #{name,jdbcType=VARCHAR}</if></where> </sql><!-- 查詢語句 --> <select id="selectByCondition" resultMap="baseResultMap">select <!-- 引入查詢的字段 --><include refid="Base_Column_List" />from student<!-- 引入查詢的條件 --><include refid="QUERY"></include> </select>

?

技巧二:

  • 大于小于號轉義
<!-- 第一種方式:使用轉義字符 --> <if test="createTime != null"><!-- &gt; -> 大于號(>) -->create_time &gt;= #{createTime ,jdbcType=DATE}</if><if test="updateTime != null"><!-- &lt; -> 小于號(<) -->update_time &lt;= #{updateTime ,jdbcType=DATE}</if><!-- 第二種:xml格式 --> <if test="createTime != null"><![CDATA[create_time >= #{createTime ,jdbcType=DATE}]]></if><if test="updateTime != null"><![CDATA[update_time <= #{updateTime ,jdbcType=DATE}]]></if>

?

技巧三:

  • 插入時返回自增的主鍵id
<!-- myBatis中關鍵點就是在 insert 標簽內添加 useGeneratedKeys 和 keyProperty屬性 --><!-- useGeneratedKeys:如果插入的表以自增列為主鍵,則允許 JDBC 支持自動生成主鍵,并可將自動生成的主鍵返回 --><!-- keyProperty:對應的主鍵的對象 --><insert id="insertSelective" parameterType="com.test.student" useGeneratedKeys="true" keyProperty="id"><!-- 這里寫插入 sql --> </insert><!-- java代碼中關鍵點就是,返回的自增主鍵不是調用的 insertSelective 方法返回結果 --><!-- 返回結果為影響行數,正確的獲取方式是在入參的 student 對象中,使用 getId() 方法得到 --><!-- 這只是舉例,具體的對象和對象中的id屬性的getter方法不一樣 -->

?

技巧四:

  • 在插入前/插入后查詢獲取某個字段的值,并且使用在緊接著的第二條 sql 中
<!-- 場景描述:一個置頂功能,設置置頂的時候需要得到最大的置頂數,加一后設置為本次置頂數 --><!-- 在顯示置頂的時候是按照倒序排列,越往后點擊了置頂的數據顯示的越前面 --><!-- 設置置頂 --> <update id="updateTop"><!-- 更新前查詢出最大的置頂數,并且加一后返回出來 --><!-- 注: --><!-- 1. 更新前/更新后:BEFORE/AFTER --><!-- 2. 這里是在有很多數據后添加的排序字段,添加排序字段后,老數據那一列都是null --><!-- 則在此處使用了 COALESCE 函數做了一個小處理,如果為null就取值0 --><selectKey keyProperty="top_sort" order="BEFORE" resultType="java.lang.Integer">select COALESCE(max(top_sort),0) + 1 from table</selectKey><!-- 設置置頂主 sql --><!-- 注: --><!-- 1. 下面 sql 中的 #{top_sort} 是取的上面 sql中的結果 -->update tabletop_sort = #{top_sort} <if test="update_time!=null">,update_time=#{update_time}</if><if test="update_user!=null">,update_user=#{update_user}</if>where id = #{id} </update>

?

?

?

?

?

長期更新

希望能夠幫助到你

over

總結

以上是生活随笔為你收集整理的myBatis中实用技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。