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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

第三章动态SQL

發布時間:2024/4/15 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第三章动态SQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

-----if標簽:
用法類似Java中的if語句,選擇性拼接指定SQL片段.

格式:<if test="條件">SQL片段</if> 說明: 1.當條件為true時,將SQL片段拼接到該標簽所在位置

代碼示例:

<!--測試if標簽: age條件--> <select id="dynacSQL1" resultType="user" parameterType="user" >select * from user<if test="age!=0">where age=#{age}</if> </select>

-----choose,when,otherwise標簽
用法類似Java的if else if 語句,用于多次判斷,選擇性拼接指定SQL片段.

格式:<choose><when test="條件1">SQL片段1</when><when test="條件2">SQL片段2</when>...<otherwise>默認SQL片段</otherwise></choose> 說明: 1.<choose>,<when>,<otherwise>不能單獨使用,必須混合使用. 2.<choose>中可以含有N個<when>,0或1個<otherwise>

代碼實例:

<!--測試choose>,<when>,<otherwise>標簽: age為多少歲--> <select id="dynacSQL2" resultType="user" parameterType="user" >select * from user<choose><when test="age==0">where age>0</when><when test="age!=0">where age=#{age}</when></choose> </select>

-----forEach標簽:
用于遍歷集合,通常用于構建in語句中.

格式:<select id="業務匿名" resultType="結果類型[類全名]" >select 字段列 from 表名 where 字段名 in<foreach collection="集合" item="變量A" index="變量B" open="" separator="" close="">#{變量A}</foreach></select>說明: 1.collection屬性值為集合類型的屬性名. 2.item屬性值為變量名,名稱任意.該變量存放當前元素/鍵值 3.index屬性值為變量名,名稱任意.該變量存放當前元素索引/鍵名 4.open,separator,close屬性值為符號,表示遍歷開始/中間/結束時拼接的符號

代碼實例

<!--測試<forEach: 測試age為20,21,22,23,24,25--><select id="dynacSQL3" resultType="user" parameterType="java.util.ArrayList" >select * from user where age in<foreach collection="array" item="ageval" open="(" separator="," close=")">#{ageval}</foreach> </select>

-----where標簽:

要求:<where>需要與<if>,<choose>,<when>,<otherwise>等配合使用 作用:a.當至少有1個子標簽的條件為true時,<where>生成1個"where"關鍵字.b.若where后緊挨"AND/OR"時[where and 條件],<where>自動去除. 格式:<where>其他動態SQL標簽</where>說明:1.<where>標簽中編寫<if>,<choose>,<when>,<otherwise>,<forEach>等標簽

代碼實例

<!--測試<where>: 測試age為20,21,22--> <select id="dynacSQL4" resultType="user" parameterType="user" >select * from user<where><if test="age==20">age=20</if><if test="age==21">age=21</if><if test="age==22">age=22</if></where> </select>

-----set標簽:
用于修改命令中,能夠動態前置"set"關鍵字,同時可以刪除多余的逗號.

格式:<update id="業務匿名" resultType="int">update 表名<set>其他動態SQL標簽或SQL片段</set></update>說明:1.<set>標簽中編寫<if>,<choose>,<when>,<otherwise>等標簽

代碼實例

<!--測試set標簽: 修改用戶信息--> <update id="dynacSQL5" parameterType="user" >update user<set><if test="name!=null">name=#{name},</if><if test="sex!=null">sex=#{sex},</if><if test="age!=0">age=#{age},</if><if test="address!=null">address=#{address}</if></set>where id=#{id} </update>

-----sql標簽
在業務標簽外,定義一個SQL片段,在其他業務標簽中可以通過引用該SQL片段.

格式:<sql id="SQL片段匿名">SQL片段</sql>說明:1.SQL片段內容可以是SQL語句的任何部分.2.<sql>標簽對之間可以嵌套動態SQL標簽,產生更加方便的SQL片段3.當需要引用SQL片段時,編寫<include refid="SQL片段匿名">即可引用.

代碼實例

<!--測試sql標簽: 字段--> <sql id="tableConum" >id,name,sex,age,address </sql> <select id="dynacSQL6" resultType="user" >select <include refid="tableConum" /> from user </select>

總結

以上是生活随笔為你收集整理的第三章动态SQL的全部內容,希望文章能夠幫你解決所遇到的問題。

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