最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis執(zhí)行SQL的兩種方式小結(jié)

 更新時(shí)間:2023年10月07日 10:56:53   作者:小日子呀  
本文主要介紹了MyBatis執(zhí)行SQL的兩種方式小結(jié),主要包括SqlSession 發(fā)送SQL和SqlSession獲取Mapper接口,通過(guò)Mapper接口發(fā)送SQL,具有一定的參考價(jià)值,感興趣的可以了解一下

MyBatis 有兩種執(zhí)行 SQL 語(yǔ)句的方式,如下:

  • 通過(guò) SqlSession 發(fā)送 SQL
  • 通過(guò) SqlSession 獲取 Mapper 接口,通過(guò) Mapper 接口發(fā)送 SQL

SqlSession發(fā)送SQL

有映射器之后就可以通過(guò) SqlSession 發(fā)送 SQL 了。我們以 getWebsite 這條 SQL 為例看看如何發(fā)送 SQL。

Website website = (Website)sqlSession.selectOne("net.biancheng.mapper.WebsiteMapper.getWebsite",1);

MyBatis 常用的查詢(xún)方法有 2 種,分別為 selectOne 和 selectList。

1)selectOne 

selectOne 方法表示使用查詢(xún)并且只返回一個(gè)對(duì)象,必須指定查詢(xún)條件。只能查詢(xún) 0 或 1 條記錄,大于 1 條記錄則運(yùn)行錯(cuò)誤。常用格式如下(也有其它重載方法,根據(jù)需要選擇)。

sqlSession.selectOne(String arg0, Object arg1)

2)selectList 

selectList 方法表示使用查詢(xún)并且返回一個(gè)列表??梢圆樵?xún) 0 或 N 條記錄。常用格式如下。

sqlSession.selectOne(String arg0)

也可指定參數(shù)

sqlSession.selectList(String arg0, Object arg1)

以上語(yǔ)法格式中,String 對(duì)象由一個(gè)命名空間加 SQL id 組合而成,它完全定位了一條 SQL,這樣 MyBatis 就會(huì)找到對(duì)應(yīng)的 SQL。Object 對(duì)象為需要傳遞的參數(shù),也就是查詢(xún)條件。

selectOne 實(shí)現(xiàn)的 selectList 都可以實(shí)現(xiàn),即 list 中只有一個(gè)對(duì)象。但 selectList 能實(shí)現(xiàn)的,selectOne 不一定能實(shí)現(xiàn)。

Mapper接口發(fā)送 SQL

SqlSession 還可以獲取 Mapper 接口,通過(guò) Mapper 接口發(fā)送 SQL

WebsiteMapper websiteMapper = sqlSession.getMapper(WebsiteMapper.class);
Website website = websiteMapper.getWebsite(1);

通過(guò) SqlSession 的 getMapper 方法獲取一個(gè) Mapper 接口,然后就可以調(diào)用它的方法了。因?yàn)?XML 文件或者接口注解定義的 SQL 都可以通過(guò)“類(lèi)的全限定名+方法名”查找,所以 MyBatis 會(huì)啟用對(duì)應(yīng)的 SQL 運(yùn)行,并返回結(jié)果。

區(qū)別

上面分別講解了 MyBatis 兩種發(fā)送 SQL 的方式,一種用 SqlSession 直接發(fā)送,另外一種通過(guò) SqlSession 獲取 Mapper 接口再發(fā)送。筆者建議采用 Mapper 接口發(fā)送 SQL 的方式,理由如下:

  • 使用 Mapper 接口編程可以消除 SqlSession 帶來(lái)的功能性代碼,提高可讀性,而 SqlSession 發(fā)送 SQL,需要一個(gè) SQL id 去匹配 SQL,比較晦澀難懂。
  • 使用 Mapper 接口,類(lèi)似 websiteMapper.getWebsite(1) 則是完全面向?qū)ο蟮恼Z(yǔ)言,更能體現(xiàn)業(yè)務(wù)的邏輯。
  • 使用 websiteMapper.getWebsite(1) 方式,IDE 會(huì)提示錯(cuò)誤和校驗(yàn),而使用 sqlSession.selectOne("getWebsite",1L) 語(yǔ)法,只有在運(yùn)行中才能知道是否會(huì)產(chǎn)生錯(cuò)誤。

目前使用 Mapper 接口編程已成為主流,尤其在 Spring 中運(yùn)用 MyBatis 時(shí),Mapper 接口的使用就更為簡(jiǎn)單

到此這篇關(guān)于MyBatis執(zhí)行SQL的兩種方式小結(jié)的文章就介紹到這了,更多相關(guān)MyBatis執(zhí)行SQL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在Spring Boot中使用Spring-data-jpa實(shí)現(xiàn)分頁(yè)查詢(xún)

    在Spring Boot中使用Spring-data-jpa實(shí)現(xiàn)分頁(yè)查詢(xún)

    如何使用jpa進(jìn)行多條件查詢(xún)以及查詢(xún)列表分頁(yè)呢?下面我將介紹兩種多條件查詢(xún)方式。具體實(shí)例代碼大家參考下本文吧
    2017-07-07
  • 解決使用mybatis-plus時(shí),生成的SQL大寫(xiě)變小寫(xiě)加下劃線(xiàn)問(wèn)題

    解決使用mybatis-plus時(shí),生成的SQL大寫(xiě)變小寫(xiě)加下劃線(xiàn)問(wèn)題

    這篇文章主要介紹了解決使用mybatis-plus時(shí),生成的SQL大寫(xiě)變小寫(xiě)加下劃線(xiàn)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java中常用的代碼匯總

    Java中常用的代碼匯總

    本文給大家分享了20個(gè)常用的java代碼,都是別人項(xiàng)目中使用過(guò)的代碼,這里推薦給大家,有需要的小伙伴可以參考下。
    2015-05-05
  • 淺談springboot的三種啟動(dòng)方式

    淺談springboot的三種啟動(dòng)方式

    這篇文章主要介紹了淺談springboot的三種啟動(dòng)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Spring MVC處理響應(yīng)的案例詳解

    Spring MVC處理響應(yīng)的案例詳解

    當(dāng)服務(wù)器向客戶(hù)端響應(yīng)數(shù)據(jù)時(shí),SpringMVC框架會(huì)使用“轉(zhuǎn)換器”(Converter)將方法的返回值進(jìn)行轉(zhuǎn)換,SpringMVC框架還會(huì)自動(dòng)使用不同的轉(zhuǎn)換器,因此這篇文章就給大家詳細(xì)介紹一下Spring MVC如何處理響應(yīng)并附上案例,需要的朋友可以參考下
    2023-06-06
  • Java 中的 String對(duì)象為什么是不可變的

    Java 中的 String對(duì)象為什么是不可變的

    String對(duì)象是不可變的,但這僅意味著你無(wú)法通過(guò)調(diào)用它的公有方法來(lái)改變它的值。本文給大家介紹java中的string對(duì)象為什么是不可變的,需要的朋友一起了解了解吧
    2015-10-10
  • Java代碼缺陷的自動(dòng)化檢測(cè)與跟蹤的管理指南

    Java代碼缺陷的自動(dòng)化檢測(cè)與跟蹤的管理指南

    本文系統(tǒng)解析Java代碼缺陷類(lèi)型及危害,涵蓋靜態(tài)分析工具檢測(cè)方法,動(dòng)態(tài)監(jiān)控技術(shù)(異常處理、性能指標(biāo)),缺陷跟蹤系統(tǒng)與CI/CD自動(dòng)化集成方案,助力提升代碼質(zhì)量與安全防護(hù),需要的朋友可以參考下
    2025-07-07
  • 自定義application.yml配置項(xiàng)方式

    自定義application.yml配置項(xiàng)方式

    這篇文章主要介紹了自定義application.yml配置項(xiàng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java線(xiàn)程之ThreadLocal解析

    Java線(xiàn)程之ThreadLocal解析

    這篇文章主要介紹了Java線(xiàn)程之ThreadLocal解析,ThreadLocal 提供線(xiàn)程的局部變量,每個(gè)線(xiàn)程都可以通過(guò)get()和set()對(duì)局部變量進(jìn)行操作而不會(huì)對(duì)其他線(xiàn)程的局部變量產(chǎn)生影響,實(shí)現(xiàn)了線(xiàn)程之間的數(shù)據(jù)隔離,需要的朋友可以參考下
    2023-09-09
  • java list與數(shù)組之間的轉(zhuǎn)換詳細(xì)解析

    java list與數(shù)組之間的轉(zhuǎn)換詳細(xì)解析

    以下是對(duì)java中l(wèi)ist與數(shù)組之間的轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-09-09

最新評(píng)論

岢岚县| 锡林浩特市| 寿宁县| 临泉县| 榕江县| 鄄城县| 安吉县| 新巴尔虎左旗| 临安市| 朔州市| 沈阳市| 永川市| 社会| 赫章县| 上栗县| 麻栗坡县| 彭州市| 永平县| 广丰县| 鄯善县| 博客| 龙井市| 兴义市| 青冈县| 德清县| 东安县| 长宁县| 图们市| 孝感市| 甘洛县| 东城区| 西吉县| 民和| 南岸区| 明水县| 阳城县| 瑞丽市| 阳朔县| 九寨沟县| 大兴区| 右玉县|