亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

高效 MyBatis SQL 寫法二

標簽:
Java 數據庫

高效 MyBatis SQL 写法二

前言

MyBatis 作为一款优秀的持久层框架,极大地简化了数据库操作。

然而,在实际开发中,XML 配置的编写仍然可能显得繁琐。

本文将分享一些 MyBatis 动态 SQL 的优质写法,帮助开发者提升效率并减少错误。

if + where 标签的组合

where 标签可以自动处理 ANDOR 的多余问题。

示例:


<select  id="getStudentList_whereIf"  resultMap="resultMap_studentEntity"  parameterType="StudentEntity">

SELECT * FROM STUDENT_TBL ST

<where>

<if  test="studentName != null">

ST.STUDENT_NAME LIKE CONCAT('%', #{studentName}, '%')

</if>

<if  test="studentSex != null">

AND ST.STUDENT_SEX = #{studentSex}

</if>

</where>

</select>

if + set 标签的更新操作

set 标签用于动态生成 UPDATE 语句中的 SET 部分。

示例:


<update  id="updateStudent_if_set"  parameterType="StudentEntity">

UPDATE STUDENT_TBL

<set>

<if  test="studentName != null">

STUDENT_NAME = #{studentName},

</if>

<if  test="studentSex != null">

STUDENT_SEX = #{studentSex},

</if>

</set>

WHERE STUDENT_ID = #{studentId}

</update>

trim 标签的灵活使用

trim 标签可以替代 whereset 标签,提供更灵活的 SQL 生成。

示例:


<select  id="getStudentList_if_trim"  resultMap="resultMap_studentEntity">

SELECT * FROM STUDENT_TBL ST

<trim  prefix="WHERE"  prefixOverrides="AND |OR ">

<if  test="studentName != null">

ST.STUDENT_NAME LIKE CONCAT('%', #{studentName}, '%')

</if>

<if  test="studentSex != null">

AND ST.STUDENT_SEX = #{studentSex}

</if>

</trim>

</select>

foreach 标签的批量操作

foreach 标签常用于 IN 条件中的批量操作。

示例:


<select  id="getStudentListByClassIds_foreach_array"  resultMap="resultMap_studentEntity">

SELECT * FROM STUDENT_TBL ST

WHERE ST.CLASS_ID IN

<foreach  collection="array"  item="classId"  open="("  separator=","  close=")">

#{classId}

</foreach>

</select>

SQL 片段的复用

通过 <sql> 标签定义可复用的 SQL 片段,提升代码的可读性和维护性。

示例:


<sql  id="studentColumns">

STUDENT_ID, STUDENT_NAME, STUDENT_SEX, STUDENT_BIRTHDAY

</sql>

  

<select  id="getStudentList"  resultMap="resultMap_studentEntity">

SELECT

<include  refid="studentColumns"/>

FROM STUDENT_TBL

</select>

总结

通过合理使用 MyBatis 的动态 SQL 标签,开发者可以显著提升代码的可读性和维护性,同时减少错误的发生。

本文介绍的几种常见用法,涵盖了从条件判断到批量操作的多种场景,希望能为你的开发工作带来帮助。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消