国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

在Mybatis中寫動態(tài)sql這些標(biāo)簽:if、where、set、trim、foreach、choose的作用是什么,怎么用?

這篇具有很好參考價值的文章主要介紹了在Mybatis中寫動態(tài)sql這些標(biāo)簽:if、where、set、trim、foreach、choose的作用是什么,怎么用?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

在 MyBatis 中,您可以使用動態(tài) SQL 標(biāo)簽來構(gòu)建靈活的 SQL 查詢,以根據(jù)不同的條件生成不同的查詢語句。以下是這些標(biāo)簽的作用和用法:

1. **`<if>` 標(biāo)簽:** 用于根據(jù)某個條件動態(tài)地包含或排除 SQL 片段,test:可以寫條件。

? ?示例用法:
? ?
? ?```xml
? ?<select id="getUserList" parameterType="Map" resultMap="UserResultMap">
? ? ? ?SELECT * FROM users
? ? ? ?<where>
? ? ? ? ? ?<if test="username != null">AND username = #{username}</if>
? ? ? ? ? ?<if test="email != null">AND email = #{email}</if>
? ? ? ?</where>
? ?</select>
? ?```
? ?
2. **`<where>` 標(biāo)簽:** 用于在 SQL 查詢中生成 `WHERE` 子句,并自動處理不必要的 `AND` 或 `OR`。

? ?示例用法:
? ?
? ?```xml
? ?<select id="getUserList" parameterType="Map" resultMap="UserResultMap">
? ? ? ?SELECT * FROM users
? ? ? ?<where>
? ? ? ? ? ?<if test="username != null">AND username = #{username}</if>
? ? ? ? ? ?<if test="email != null">AND email = #{email}</if>
? ? ? ?</where>
? ?</select>
? ?```
? ?
3. **`<set>` 標(biāo)簽:** 用于在更新語句中動態(tài)生成 `SET` 子句,根據(jù)傳入的參數(shù)來更新特定的列。

? ?示例用法:
? ?
? ?```xml
? ?<update id="updateUser" parameterType="User">
? ? ? ?UPDATE users
? ? ? ?<set>
? ? ? ? ? ?<if test="username != null">username = #{username},</if>
? ? ? ? ? ?<if test="email != null">email = #{email},</if>
? ? ? ?</set>
? ? ? ?WHERE id = #{id}
? ?</update>
? ?```

4. **`<trim>` 標(biāo)簽:** 用于在 SQL 語句中修剪多余的空白字符和逗號,并可以根據(jù)條件自定義修剪的內(nèi)容。

prefix:在sql動態(tài)條件加前綴

suffix:在sql動態(tài)條件加后綴

prefixOverrides:刪除sql動態(tài)條件前綴內(nèi)容

suffixOverrides:刪除sql動態(tài)條件后綴內(nèi)容

? ?示例用法:
? ?
? ?```xml
? ?<select id="getUserList" parameterType="Map" resultMap="UserResultMap">
? ? ? ?SELECT * FROM users
? ? ? ?<where>
? ? ? ? ? ?<trim prefix="AND" prefixOverrides="OR">
? ? ? ? ? ? ? ?<if test="username != null">OR username = #{username}</if>
? ? ? ? ? ? ? ?<if test="email != null">OR email = #{email}</if>
? ? ? ? ? ?</trim>
? ? ? ?</where>
? ?</select>
? ?```

5. **`<foreach>` 標(biāo)簽:** 用于循環(huán)遍歷集合或數(shù)組,生成多個 SQL 片段。

? ?示例用法:
? ?
? ?```xml
? ?<select id="getUserListByIds" parameterType="List" resultMap="UserResultMap">
? ? ? ?SELECT * FROM users
? ? ? ?WHERE id IN
? ? ? ?<foreach collection="list" item = "listParam" open = "(" separator = "," close = ")">
? ? ? ? ? ?#{listParam}
? ? ? ?</foreach>
? ?</select>
? ?```

6. **`<choose>` 標(biāo)簽:** 類似于 Java 中的 `switch` 語句,根據(jù)條件選擇其中一個分支進(jìn)行處理。

?choose(類似switch)

when標(biāo)簽:? ?類似switch的case分支?,? ?需要寫test屬性

otherwise(否則):? ?類似switch的default分支

? ?示例用法:
? ?```xml
? ?<select id="getUserList" parameterType="Map" resultMap="UserResultMap">
? ? ? ?SELECT * FROM users
? ? ? ?<where>
? ? ? ? ? ?<choose>
? ? ? ? ? ? ? ?<when test="username != null">AND username = #{username}</when>
? ? ? ? ? ? ? ?<when test="email != null">AND email = #{email}</when>
? ? ? ? ? ? ? ?<otherwise>AND status = 1</otherwise>
? ? ? ? ? ?</choose>
? ? ? ?</where>
? ?</select>
? ?```

這些動態(tài) SQL 標(biāo)簽允許您在 MyBatis 中根據(jù)不同的條件構(gòu)建動態(tài)的查詢語句,以實(shí)現(xiàn)更靈活的數(shù)據(jù)庫操作。您可以根據(jù)具體的業(yè)務(wù)需求選擇適當(dāng)?shù)臉?biāo)簽來創(chuàng)建定制的查詢邏輯。文章來源地址http://www.zghlxwxcb.cn/news/detail-675097.html

到了這里,關(guān)于在Mybatis中寫動態(tài)sql這些標(biāo)簽:if、where、set、trim、foreach、choose的作用是什么,怎么用?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用動態(tài)sql時,if標(biāo)簽不起作用

    使用動態(tài)sql時,if標(biāo)簽不起作用

    目錄 場景: 問題分析: 問題解決: 簡單講一下應(yīng)用場景 我拿到一個項(xiàng)目,完成后端數(shù)據(jù)處理,在進(jìn)行可選條件查詢時,使用動態(tài)sql ?在mapper.xml中我先是這么寫的 ?然后,就出現(xiàn)if標(biāo)簽失效的情況,關(guān)鍵是它有時候也會返回到前端數(shù)據(jù),給我都搞蒙了 反復(fù)查看,加上網(wǎng)搜索

    2024年01月23日
    瀏覽(12)
  • MyBatis:動態(tài) SQL 標(biāo)簽

    MyBatis:動態(tài) SQL 標(biāo)簽

    MyBatis 動態(tài) SQL 標(biāo)簽 ,是一組預(yù)定義的標(biāo)簽,用于構(gòu)建動態(tài)的 SQL 語句,允許在 SQL 語句中使用條件、循環(huán)和迭代等邏輯。通過使用動態(tài) SQL 標(biāo)簽,開發(fā)者可以根據(jù)不同的條件和參數(shù)生成不同的 SQL 語句,實(shí)現(xiàn)更加靈活的數(shù)據(jù)訪問操作。但是,需要謹(jǐn)慎處理 SQL 注入問題,確保所

    2024年02月04日
    瀏覽(26)
  • 【MyBatis】四、MyBatis中的動態(tài)SQL標(biāo)簽

    動態(tài)SQL語句是動態(tài)的拼接Mybatis中SQL語句的情況,可以動態(tài)的在Mybatis中使用SQL if語句的xml文件: 傳入對象來進(jìn)行調(diào)用: where標(biāo)簽中的and會被自動去掉,并且若沒有合適的內(nèi)容,則不會添加where 注意:where標(biāo)簽只能去掉條件前的and、五福去掉條件后的and trim標(biāo)簽會在其內(nèi)容

    2024年02月09日
    瀏覽(17)
  • Mybatis是什么?Mybatis中動態(tài)sql常用標(biāo)簽有哪些?

    Mybatis是什么? Mybatis是一種開源的Java持久層框架,它可以將SQL語句和Java代碼進(jìn)行分離,使得開發(fā)人員可以更加專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。與Hibernate等ORM框架不同的是,Mybatis使用XML或注解的方式來描述SQL語句,這種方式更加靈活,因此在一些需要高度自定義SQL語句的場景下,

    2024年02月05日
    瀏覽(31)
  • MyBatis 動態(tài)SQL的標(biāo)簽有哪些?如何使用?

    MyBatis 動態(tài)SQL的標(biāo)簽有哪些?如何使用?

    目錄 1. MyBatis 動態(tài)SQL標(biāo)簽有什么用? 2. if 標(biāo)簽 3. where 標(biāo)簽 4. trim 標(biāo)簽 5. choose,when,otherwise 6. foreach 1. MyBatis 動態(tài)SQL標(biāo)簽有什么用? 我來說一個場景大家就明白了,如下圖,大家應(yīng)該在鐵路12306上買過火車票吧,可以看到,我們在選票的時候可以對車做很多種選擇和篩選,系

    2024年02月11日
    瀏覽(49)
  • MyBatis 動態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽-

    MyBatis 動態(tài)SQL之<choose><when><o(jì)therwise>標(biāo)簽-

    MyBatis 中動態(tài)語句 choose-when-otherwise 類似于 Java 中的 switch-case-default 語句。由于 MyBatis 并沒有為 if 提供對應(yīng)的 else 標(biāo)簽,如果想要達(dá)到…… 的效果,可以借助 、、 來實(shí)現(xiàn)。 hoose 標(biāo)簽按順序判斷其內(nèi)部 when 標(biāo)簽中的判斷條件是否成立,如果有一個成立,則執(zhí)行相應(yīng)的 SQL 語句

    2024年02月09日
    瀏覽(25)
  • 數(shù)據(jù)庫操作不再困難,MyBatis動態(tài)Sql標(biāo)簽解析

    數(shù)據(jù)庫操作不再困難,MyBatis動態(tài)Sql標(biāo)簽解析

    MyBatis緩存原理 Mybatis的CachingExecutor與二級緩存 Mybatis plugin 的使用及原理 MyBatis四大組件Executor、StatementHandler、ParameterHandler、ResultSetHandler 詳解 MyBatis+Springboot 啟動到SQL執(zhí)行全流程 使用MyBatis,或者M(jìn)yBatis-plus,有一項(xiàng)重要的開發(fā)技能就是寫動態(tài)sql,動態(tài)sql能幫我們省略很多復(fù)雜邏

    2024年02月12日
    瀏覽(34)
  • MyBatis動態(tài)sql之批量修改、批量新增(使用foreach標(biāo)簽的一條sql語句解決)

    ????????批量新增和批量修改在業(yè)務(wù)中是很常見的,一條sql訪問數(shù)據(jù)庫和通過代碼循環(huán)體中循環(huán)訪問數(shù)據(jù)庫做單個數(shù)據(jù)新增修改相比較下:一條sql訪問數(shù)據(jù)庫性能上明顯提升,代碼且簡潔明了 1、Mapper.java中 說明: 參數(shù)是list ?2、Mapper.xml中 說明: 通過trim標(biāo)簽拼接前后綴和

    2024年02月10日
    瀏覽(22)
  • IDEA全局設(shè)置MyBatis中寫SQL語句提示

    IDEA全局設(shè)置MyBatis中寫SQL語句提示

    第一步:把這兩個設(shè)置改成MySQL即可: ? 第二步:找到設(shè)置=編輯器=語言注入=店家加號,選擇MySQL?

    2024年02月13日
    瀏覽(20)
  • MyBatis的代理開發(fā)方式、動態(tài)sql語句和typeHandlers和plugins標(biāo)簽實(shí)戰(zhàn)

    MyBatis的代理開發(fā)方式、動態(tài)sql語句和typeHandlers和plugins標(biāo)簽實(shí)戰(zhàn)

    接上篇博客: MyBatis基礎(chǔ)知識和快速入門、MyBatis核心配置文件講解,本文繼續(xù)講解MyBatis動態(tài)SQL語句、typeHandlers和plugins標(biāo)簽。 傳統(tǒng)開發(fā)方式 編寫UserDao接口 編寫UserDaoImpl實(shí)現(xiàn) mapper文件 測試傳統(tǒng)方式 代理開發(fā)方式 代理開發(fā)方式介紹 采用 Mybatis 的代理開發(fā)方式實(shí)現(xiàn) DAO 層的開發(fā)

    2023年04月27日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包