欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MyBatis update標簽詳解

 更新時間:2023年10月09日 14:46:44   作者:小日子呀  
這篇文章主要介紹了MyBatis update標簽,使用 Map 傳遞參數(shù)會導致業(yè)務可讀性的喪失,繼而導致后續(xù)擴展和維護的困難,所以在實際應用中我們應該果斷廢棄該方式,需要的朋友可以參考下

在 WebsiteMapper.xml 中添加以下更新語句

<!--update 標簽-->
<update id="updateWebsite" parameterType="string">
    update website set name = #{name}
</update>

在 WebsiteMapper 接口中增加一個 updateWebsite() 方法

int updateWebsite(String name);

參數(shù)為 String 類型的字符串;返回值為 int 類型,表示執(zhí)行 sql 語句后受影響的記錄的行數(shù)。

update 標簽常用屬性

屬性名稱描述備注
id它和 Mapper 的命名空間組合起來使用,是唯一標識符,供 MyBatis 調(diào)用如果命名空間+ id 不唯一,那么 MyBatis 拋出異常
parameterType傳入 SQL 語句的參數(shù)類型的全限定名或別名,它是一個可選屬性。支持基本數(shù)據(jù)類型和 JavaBean、Map 等復雜數(shù)據(jù)類型
flushCache該屬性用于設置執(zhí)行該操作后,是否會清空二級緩存和本地緩存,默認值為 true。-
timeout該屬性用于設置 SQL 執(zhí)行的超時時間,如果超時,就拋異常。-
statementType執(zhí)行 SQL 時使用的 statement 類型, 默認為 PREPARED,可選值:STATEMENT,PREPARED 和 CALLABLE。-

注意:update 標簽中沒有 resultType 屬性,只有查詢操作才需要對返回結(jié)果類型進行相應的指定。

傳遞多個參數(shù)

在上面的示例中,我們在更新語句中只使用了一個 String 類型的參數(shù),而在實際的開發(fā)過程中,大多數(shù)時候,我們的更新語句都需要使用多個參數(shù),Mybatis 為我們提供以下 3 種方式,來實現(xiàn)給映射器傳遞多個參數(shù):

  • 使用 Map 傳遞參數(shù)
  • 使用注解傳遞參數(shù)
  • 使用 JavaBean 傳遞參數(shù)

使用 Map 傳遞參數(shù)

可以將參數(shù)封裝到一個 Map 對象中,然后傳遞給 MyBatis 的映射器 ,在 WebsiteMapper 接口中,定義一個 updateWebsiteByMap() 方法,并使用 Map 傳遞參數(shù)

int updateWebsiteByMap(Map<String, Object> params);

 在 WebsiteMapper.xml 使用 update 標簽定義一個 update 語句,并接收通過 Map 傳遞的參數(shù)

<!--更新語句接收 Map 傳遞的參數(shù)-->
<update id="updateWebsiteByMap" parameterType="map">
    update website set name = #{name},url= #{url} where id = #{id}
</update>

使用注解傳遞參數(shù)

還可以使用 MyBatis 提供的 @Param 注解給注解器傳遞參數(shù),在 WebsiteMapper 接口中,定義一個 updateWebsiteByParam() 方法,并使用 @Param 注解傳遞參數(shù)

int updateWebsiteByParam(@Param("name") String name, @Param("url") String url, @Param("id") Integer id);

在 WebsiteMapper.xml 中使用 update 標簽定義一個 update 語句,并接收通過 @Param 注解傳遞的參數(shù)

<!--更新語句接收 @Param 注解傳遞的參數(shù)-->
<update id="updateWebsiteByParam">
    update website set name = #{name},url= #{url} where id = #{id}
</update>

使用 JavaBean 傳遞參數(shù)

在參數(shù)過多的情況下,可以將參數(shù)通過 setter 方法封裝到 JavaBean(實體類)對象中傳遞給映射器

<!--更新語句接收 JavaBean 傳遞的參數(shù)-->
<update id="updateWebsiteByJavaBean" parameterType="net.cc.www.po.Website">
    update website set name = #{name},url= #{url} where id = #{id}
</update>

區(qū)別

以上 3 種方式的區(qū)別如下:

  • 使用 Map 傳遞參數(shù)會導致業(yè)務可讀性的喪失,繼而導致后續(xù)擴展和維護的困難,所以在實際應用中我們應該果斷廢棄該方式。
  • 使用 @Param 注解傳遞參數(shù)會受到參數(shù)個數(shù)的影響。當 n≤5 時,它是最佳的傳參方式,因為它更加直觀;當 n>5 時,多個參數(shù)將給調(diào)用帶來困難。
  • 當參數(shù)個數(shù)大于 5 個時,建議使用 JavaBean 方式。

到此這篇關(guān)于MyBatis update標簽的文章就介紹到這了,更多相關(guān)MyBatis update標簽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 深入探究 spring-boot-starter-parent的作用

    深入探究 spring-boot-starter-parent的作用

    這篇文章主要介紹了spring-boot-starter-parent的作用詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,感興趣的小伙伴可以跟著小編一起來學習一下
    2023-05-05
  • JSON序列化導致Long類型被搞成Integer的坑及解決

    JSON序列化導致Long類型被搞成Integer的坑及解決

    這篇文章主要介紹了JSON序列化導致Long類型被搞成Integer的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • eclipse中沒有SERVER的解決辦法(超詳細)

    eclipse中沒有SERVER的解決辦法(超詳細)

    使用eclipse進行tomcat配置時,經(jīng)常會發(fā)現(xiàn)一個重要的問題就是打開eclipse之后沒有了server選項,所以本給大家詳細介紹了eclipse中沒有SERVER的解決辦法,文中有詳細的圖文講解,需要的朋友可以參考下
    2023-12-12
  • Java接入支付寶授權(quán)第三方登錄的完整步驟

    Java接入支付寶授權(quán)第三方登錄的完整步驟

    不管是支付寶支付,還是微信支付,還是銀聯(lián)支付等,大部分的支付流程都是相似的,這篇文章主要給大家介紹了關(guān)于Java接入支付寶授權(quán)第三方登錄的相關(guān)資料,使用支付寶的沙盒環(huán)境示例,需要的朋友可以參考下
    2021-07-07
  • HttpClient的KeepAlive接口方法源碼解析

    HttpClient的KeepAlive接口方法源碼解析

    這篇文章主要為大家介紹了HttpClient的KeepAlive接口方法源碼解析,
    有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 詳解如何使用Jersey客戶端請求Spring Boot(RESTFul)服務

    詳解如何使用Jersey客戶端請求Spring Boot(RESTFul)服務

    本篇文章主要介紹了詳解如何使用Jersey客戶端請求Spring Boot(RESTFul)服務,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Java編程復用類代碼詳解

    Java編程復用類代碼詳解

    這篇文章主要介紹了Java編程復用類代碼詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • java Timer 定時每天凌晨1點執(zhí)行任務

    java Timer 定時每天凌晨1點執(zhí)行任務

    這篇文章主要介紹了java Timer 定時每天凌晨1點執(zhí)行任務的代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • 詳解關(guān)于java文件下載文件名亂碼問題解決方案

    詳解關(guān)于java文件下載文件名亂碼問題解決方案

    這篇文章主要介紹了詳解關(guān)于java文件下載文件名亂碼問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • SpringBoot實現(xiàn)EMQ設備的上下線告警

    SpringBoot實現(xiàn)EMQ設備的上下線告警

    EMQX?的上下線系統(tǒng)消息通知功能在客戶端連接成功或者客戶端斷開連接,需要實現(xiàn)設備的上下線狀態(tài)監(jiān)控,所以本文給大家介紹了如何通過SpringBoot實現(xiàn)EMQ設備的上下線告警,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-10-10

最新評論