亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MyBatis中怎么實現動態SQL!

發布時間:2021-07-26 15:41:56 來源:億速云 閱讀:192 作者:Leah 欄目:數據庫

這篇文章將為大家詳細講解有關MyBatis中怎么實現動態SQL!,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

一、if標簽

if是最常用標簽,經常用在判斷語句上,可以實現某些簡單的條件選擇。基本使用示例如下:

<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">        select * from user where 1=1        <if test="name != null and name != ''">            and name = #{name}        </if>        <if test="age != null ">            and age = #{age}        </if>    </select>

二、where標簽

上面的例子中使用了“1=1”,是為了避免后續條件不滿足時候報錯,那有沒有辦法避免這種寫法呢?

當然有,就是接下來要說的where,where標簽會自動判斷如果包含的標簽中有返回值的話,就在sql中插入一個where,如果where標簽最后返回的內容是以and  或者or開頭的,也會被自動移除掉,上面例子中換成where標簽后寫法如下:

<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">         select * from user          <where>             <if test="name != null and name != ''">                 and name = #{name}             </if>             <if test="age != null ">                 and age = #{age}             </if>         </where>     </select>

三、trim標簽

trim的作用是去除特殊的字符串,它的prefix屬性代表語句的前綴,prefixOverrides屬性代表需要去除的哪些特殊字符串,prefixOverrides屬性會忽略通過管道分隔的字符,后綴的處理和前綴一樣。

trim標簽的主要屬性如下

  • prefix:前綴覆蓋并增加其內容。

  • suffix:后綴覆蓋并增加其內容。

  • prefixOverrides:前綴判斷的條件。

  • suffixOverrides:后綴判斷的條件。

舉兩個例子。

使用前綴屬性

<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">        select * from user        <trim prefix="WHERE" prefixOverrides="AND |OR " >            <if test="name != null and name != ''">                and name = #{name}            </if>            <if test="sex != null ">                or sex = #{sex}            </if>            <if test="age != null ">                and age = #{age}            </if>        </trim>    </select>

使用后綴屬性

<update id="update" parameterType="Object">         UPDATE user         <trim prefix=" SET " prefixOverrides=",">             <if test="id != null ">,id=#{id}</if>             <if test="name != null ">,name=#{name}</if>             <if test="age != null ">,age=#{age}</if>         </trim>         WHERE ID=#{id}     </update>

四、foreach標簽

foreach的作用是遍歷集合,它能夠很好地支持數組和List、Set接口的集合的遍歷,往往和sql中的in組合比較多。

foreach標簽的主要屬性如下

  • item:表示循環中當前的元素。

  • index:表示當前元素在集合的位置下標。

  • collection:配置list的屬性名等。

  • open和close:配置的是以什么符號將這些集合元素包裝起來。

  • separator:配置的是各個元素的間隔符。

舉個例子:

<select id="queryAllUsersByName" resultType="com.example.springboot.mybatisxml.entity.User">         select * from user where id in         <foreach item="id" index="index" collection="userList"                  open="(" separator="," close=")">             #{id}         </foreach>     </select>

關于MyBatis中怎么實現動態SQL!就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘南县| 芜湖市| 峨边| 荥阳市| 蒙城县| 呼伦贝尔市| 白水县| 田东县| 桦甸市| 九龙县| 海林市| 甘谷县| 新昌县| 商丘市| 通江县| 革吉县| 徐州市| 余江县| 松潘县| 万源市| 岳池县| 建始县| 兴宁市| 株洲市| 汉寿县| 如皋市| 龙南县| 辽宁省| 黎平县| 镇江市| 同德县| 郑州市| 宁城县| 泾源县| 柘荣县| 台南市| 峡江县| 怀集县| 绥化市| 上蔡县| 扎兰屯市|