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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

發(fā)布時(shí)間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

視頻地址:http://edu.51cto.com/sd/be679

動(dòng)態(tài)Sql是Mybatis的核心,就是對(duì)我們的sql語(yǔ)句進(jìn)行靈活的操作,他可以通過(guò)表達(dá)式,對(duì)sql語(yǔ)句進(jìn)行判斷,然后對(duì)其進(jìn)行靈活的拼接和組裝??梢院?jiǎn)單的說(shuō)成Mybatis中可以動(dòng)態(tài)去的判斷需不需要某些東西。

  動(dòng)態(tài)Sql主要有以下類(lèi)型:

    if

    choose,when,otherwise

    trim,where,set

    foreach

  這里主要介紹幾個(gè)常見(jiàn)的where ?if ?foreach,直接貼代碼了

    1.where 這里的where有一個(gè)好處就是在拼接成功的時(shí)候,會(huì)自動(dòng)去掉第一個(gè)and

    2.if 這里的if和java基礎(chǔ)中的if用法是一樣,在這里的用法就是當(dāng)條件成立的時(shí)候,就會(huì)把sql語(yǔ)句拼接上去,不成立的時(shí)候就會(huì)把if里面的sql語(yǔ)句忽略

    3.if可以重復(fù)并且嵌套使用

    4.這里的student.name是包裝類(lèi)的寫(xiě)法

  foreach的用法:把sid在4,5,6,7中的學(xué)生找出來(lái) SELECT * FROM t_student WHERE sid in (4,5,6,7);

<!-- 測(cè)試foreach代碼 --> <sql id="forEache"><if test="sid_s!=null"><!-- collection:指定你輸入的集合的屬性item:每次遍歷的對(duì)象名(別名)open:開(kāi)始遍歷的時(shí)候拼接的字符串close:結(jié)束遍歷的時(shí)候要拼接的字符串separator:遍歷的對(duì)象中間要拼接的字符串SELECT * FROM t_student WHERE sid in (4,5,6,7);--><foreach collection="sid_s" item="sid" open="and sid in (" close=")" separator=",">#{sid}</foreach></if> </sql>

  Sql片段:(提高配置文件中Sql代碼的重用性)

    Sql片段的寫(xiě)法:

<!-- id:這個(gè)是唯一標(biāo)識(shí)sql代碼片段經(jīng)驗(yàn) : 基于單表寫(xiě)的sql代碼重用性比較高】: 就是在sql代碼里不要出現(xiàn)where--> <sql id="query_list"><if test="student!=null and student!=''"><if test="student.name!=null and student.name!=''">and name=#{student.name}</if><if test="student.sex!=null and student.sex!=''">and sex=#{student.sex}</if> </if> </sql>

    Sql片段的引用:(可以引用其他配置文件的sql片段:命名空間.sql片段的Id)

<!-- 拼接成功的時(shí)候,這個(gè)where會(huì)自動(dòng)去掉第一個(gè) and --><where><include refid="query_list"></include> </where>

轉(zhuǎn)載于:https://www.cnblogs.com/huaixiaoz/p/5795836.html

總結(jié)

以上是生活随笔為你收集整理的6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。