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

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

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

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

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

SqlSession發(fā)送SQL

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

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

MyBatis 常用的查詢方法有 2 種,分別為 selectOne 和 selectList。

1)selectOne 

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

sqlSession.selectOne(String arg0, Object arg1)

2)selectList 

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

sqlSession.selectOne(String arg0)

也可指定參數(shù)

sqlSession.selectList(String arg0, Object arg1)

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

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

Mapper接口發(fā)送 SQL

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

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

通過 SqlSession 的 getMapper 方法獲取一個 Mapper 接口,然后就可以調(diào)用它的方法了。因為 XML 文件或者接口注解定義的 SQL 都可以通過“類的全限定名+方法名”查找,所以 MyBatis 會啟用對應的 SQL 運行,并返回結果。

區(qū)別

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

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

目前使用 Mapper 接口編程已成為主流,尤其在 Spring 中運用 MyBatis 時,Mapper 接口的使用就更為簡單

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

相關文章

  • spring @schedule注解如何動態(tài)配置時間間隔

    spring @schedule注解如何動態(tài)配置時間間隔

    這篇文章主要介紹了spring @schedule注解如何動態(tài)配置時間間隔,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 你知道Java的這些騷操作嗎?

    你知道Java的這些騷操作嗎?

    今天在看python相關的東西,看到各種騷操作,回頭想了下Java有沒有什么騷操作,整理下面幾種,一起看一下吧,需要的朋友可以參考下
    2021-05-05
  • java輸出鏤空金字塔實現(xiàn)案例

    java輸出鏤空金字塔實現(xiàn)案例

    小編最近接到領導安排,要求根據(jù)用戶輸入,打印出相應層數(shù)的鏤空金字塔效果,本文分步驟通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2021-09-09
  • Java雙重MD5加密實現(xiàn)安全登錄

    Java雙重MD5加密實現(xiàn)安全登錄

    MD5對密碼進行加密存儲是常見的一種加密方式,本文主要介紹了Java雙重MD5加密實現(xiàn)安全登錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • java實現(xiàn)word文檔轉pdf并添加水印的方法詳解

    java實現(xiàn)word文檔轉pdf并添加水印的方法詳解

    這篇文章主要介紹了java實現(xiàn)word文檔轉pdf并添加水印的方法,結合實例形式詳細分析了java word文檔轉PDF相關實現(xiàn)技巧與操作注意事項,需要的朋友可以參考下
    2019-09-09
  • Mybatis實現(xiàn)關聯(lián)關系映射的方法示例

    Mybatis實現(xiàn)關聯(lián)關系映射的方法示例

    本文主要介紹了Mybatis實現(xiàn)關聯(lián)關系映射的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • SpringBoot如何優(yōu)雅地使用Swagger2

    SpringBoot如何優(yōu)雅地使用Swagger2

    這篇文章主要介紹了SpringBoot如何優(yōu)雅地使用Swagger2,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • java開發(fā)非公平鎖不可打斷源碼示例解析

    java開發(fā)非公平鎖不可打斷源碼示例解析

    這篇文章主要為大家介紹了java開發(fā)非公平鎖不可打斷源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Spring Boot實現(xiàn)異步請求(Servlet 3.0)

    Spring Boot實現(xiàn)異步請求(Servlet 3.0)

    在spring 3.2 及以后版本中增加了對請求的異步處理,這篇文章主要介紹了Spring Boot實現(xiàn)異步請求(Servlet 3.0),感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 完美解決gson將Integer默認轉換成Double的問題

    完美解決gson將Integer默認轉換成Double的問題

    下面小編就為大家?guī)硪黄昝澜鉀Qgson將Integer默認轉換成Double的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論