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

MyBatis反向生成Example類的使用方式

 更新時(shí)間:2021年12月14日 15:19:07   作者:weixin_39477597  
今天小編就為大家分享一篇MyBatis反向生成Example類的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MyBatis反向生成Example類使用

一、逆向工程

MyBatis的逆向工程不僅僅可以生成和表相對(duì)應(yīng)的實(shí)體類還可以根據(jù)數(shù)據(jù)庫(kù)種的表自動(dòng)生成Example類,我們可以用Example類

實(shí)現(xiàn)條件增刪改查而不用自己再去寫(xiě)sql語(yǔ)句。

二、Example類的生成

只要在generatorConfig.xml 文件中用表名生成對(duì)應(yīng)的實(shí)體類時(shí)將生成Example的信息都變?yōu)閠rue即可。

        <table tableName="user"
            enableCountByExample="true"
           enableUpdateByExample="true"
           enableDeleteByExample="true"
           enableSelectByExample="true"
            selectByExampleQueryId="false"
        </table>

三、Example類的使用

打開(kāi)一個(gè)Exapmle類我們會(huì)看到以下幾個(gè)成員

protected String orderByClause; 
protected Integer start; 
protected Integer length; 
protected boolean distinct; 
protected List<Criteria> oredCriteria; 
  • orderByClause:用于指定ORDER BY條件,這個(gè)條件沒(méi)有構(gòu)造方法,直接通過(guò)傳遞字符串值指定。
  • startlength:是分頁(yè)時(shí)用來(lái)指定查詢第幾條數(shù)據(jù)到第幾條數(shù)據(jù)的。
  • distinct:是用來(lái)指定是否要去重查詢的,true為去重,false不去重。
  • oredCriteriia:是用來(lái)指定查詢條件的。

逆向工程生成的文件XxxExample.java中包含一個(gè)static 的內(nèi)部類 Criteria ,在Criteria中有很多方法,主要是定義SQL 語(yǔ) 句where后的查詢條件。

四、使用方法

在service種可以這么寫(xiě)

//指定要進(jìn)行去重查詢
  userBankCardExample.setDistinct(true);
  //指定查詢條件
  userBankCardExample.createCriteria().andUserIdEqualTo(iptUserBankCard.getUserId());
  //調(diào)用查詢方法
  List<UserBankCard> userBankCadList = userBankCardDao.selectByExample(userBankCardExample);

注意:在調(diào)用upateExample()是更新所有字段,包括字段為null的也更新,建議使用 updateByExampleSelective()更新想更新的字段

MyBatis逆向工程生成Example類的方法總結(jié)

很早之前就在項(xiàng)目開(kāi)發(fā)中多次使用MyBatis逆向工程生成的Example類,但一直沒(méi)有對(duì)其下的方法做一個(gè)簡(jiǎn)單的總結(jié),現(xiàn)總結(jié)如下:

一、mapper接口中的方法解析

mapper接口中的部分常用方法及功能如下:

方法 功能說(shuō)明
int countByExample(UserExample example) thorws SQLException 按條件計(jì)數(shù)
int deleteByPrimaryKey(Integer id) thorws SQLException 按主鍵刪除
int deleteByExample(UserExample example) thorws SQLException 按條件刪除
String/Integer insert(User record) thorws SQLException 插入數(shù)據(jù)(返回值為ID)
User selectByPrimaryKey(Integer id) thorws SQLException 按主鍵查詢
ListselectByExample(UserExample example) thorws SQLException 按條件查詢
ListselectByExampleWithBLOGs(UserExample example) thorws SQLException 按條件查詢(包括BLOB字段)。只有當(dāng)數(shù)據(jù)表中的字段類型有為二進(jìn)制的才會(huì)產(chǎn)生
int updateByPrimaryKey(User record) thorws SQLException 按主鍵更新
int updateByPrimaryKeySelective(User record) thorws SQLException 按主鍵更新值不為null的字段
int updateByExample(User record, UserExample example) thorws SQLException 按條件更新
int updateByExampleSelective(User record, UserExample example) thorws SQLException 按條件更新值不為null的字段

二、Example類解析

mybatis的逆向工程中會(huì)生成實(shí)體類及實(shí)體類對(duì)應(yīng)的example類,example類用于添加條件,相當(dāng)where后面的部分。

xxxExample example = new xxxExample(); 
Criteria criteria = new Example().createCriteria();

example類中的部分常用方法及功能如下:

方法 功能說(shuō)明
example.setOrderByClause(“字段名 ASC”); 添加升序排列條件,DESC為降序
example.setDistinct(false) 去除重復(fù),boolean型,true為選擇不重復(fù)的記錄
criteria.andXxxIsNull 添加字段xxx為null的條件
criteria.andXxxIsNotNull 添加字段xxx不為null的條件
criteria.andXxxEqualTo(value) 添加xxx字段等于value條件
criteria.andXxxNotEqualTo(value) 添加xxx字段不等于value條件
criteria.andXxxGreaterThan(value) 添加xxx字段大于value條件
criteria.andXxxGreaterThanOrEqualTo(value) 添加xxx字段大于等于value條件
criteria.andXxxLessThan(value) 添加xxx字段小于value條件
criteria.andXxxLessThanOrEqualTo(value) 添加xxx字段小于等于value條件
criteria.andXxxIn(List<?>) 添加xxx字段值在List<?>條件
criteria.andXxxNotIn(List<?>) 添加xxx字段值不在List<?>條件
criteria.andXxxLike(“%”+value+”%”) 添加xxx字段值為value的模糊查詢條件
criteria.andXxxNotLike(“%”+value+”%”) 添加xxx字段值不為value的模糊查詢條件
criteria.andXxxBetween(value1,value2) 添加xxx字段值在value1和value2之間條件
criteria.andXxxNotBetween(value1,value2) 添加xxx字段值不在value1和value2之間條件

注:在mybatis逆向工程生成的文件XxxExample.java中包含一個(gè)static的內(nèi)部類Criteria,Criteria中的方法是定義SQL 語(yǔ)句where后的查詢條件。

三、小結(jié)一下

XxxExample.java只能實(shí)現(xiàn)簡(jiǎn)單條件增刪改查,復(fù)雜的功能還需要自己編寫(xiě)sql代碼來(lái)實(shí)現(xiàn)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot單元測(cè)試框架Mockito介紹及使用

    SpringBoot單元測(cè)試框架Mockito介紹及使用

    與集成測(cè)試將系統(tǒng)作為一個(gè)整體測(cè)試不同,單元測(cè)試更應(yīng)該專注于某個(gè)類。所以當(dāng)被測(cè)試類與外部類有依賴的時(shí)候,尤其是與數(shù)據(jù)庫(kù)相關(guān)的這種費(fèi)時(shí)且有狀態(tài)的類,很難做單元測(cè)試。但好在可以通過(guò)“Mockito”這種仿真框架來(lái)模擬這些比較費(fèi)時(shí)的類,從而專注于測(cè)試某個(gè)類內(nèi)部的邏輯
    2023-01-01
  • mybatis-plus使用generator實(shí)現(xiàn)逆向工程

    mybatis-plus使用generator實(shí)現(xiàn)逆向工程

    mybatis-plus-generator在3.5.0以及以后的版本使用新的方式逆向生成代碼,本文主要介紹了mybatis-plus使用generator實(shí)現(xiàn)逆向工程,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-05-05
  • 對(duì)Java接口進(jìn)行冪等性控制的三種方法

    對(duì)Java接口進(jìn)行冪等性控制的三種方法

    在做分布式系統(tǒng)、支付系統(tǒng)、電商秒殺等實(shí)際項(xiàng)目中,我們經(jīng)常會(huì)遇到接口被重復(fù)調(diào)用的問(wèn)題,像用戶支付時(shí)多次點(diǎn)擊“支付”按鈕,消息隊(duì)列消費(fèi)失敗后自動(dòng)重試等,這些行為如果沒(méi)有控制好冪等性,會(huì)產(chǎn)生重復(fù)數(shù)據(jù),所以本文給大家介紹了對(duì)Java接口進(jìn)行冪等性控制的三種方法
    2025-06-06
  • SpringBoot集成tensorflow實(shí)現(xiàn)圖片檢測(cè)功能

    SpringBoot集成tensorflow實(shí)現(xiàn)圖片檢測(cè)功能

    TensorFlow名字的由來(lái)就是張量(Tensor)在計(jì)算圖(Computational?Graph)里的流動(dòng)(Flow),它的基礎(chǔ)就是前面介紹的基于計(jì)算圖的自動(dòng)微分,本文將給大家介紹Spring?Boot集成tensorflow實(shí)現(xiàn)圖片檢測(cè)功能,需要的朋友可以參考下
    2024-06-06
  • Springboot 實(shí)現(xiàn)跨域訪問(wèn)無(wú)需使用jsonp的實(shí)現(xiàn)代碼

    Springboot 實(shí)現(xiàn)跨域訪問(wèn)無(wú)需使用jsonp的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Springboot 實(shí)現(xiàn)跨域訪問(wèn) 無(wú)需使用jsonp的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • springcloud ribbon 饑餓加載原理解析

    springcloud ribbon 饑餓加載原理解析

    這篇文章主要介紹了springcloud ribbon 饑餓加載原理解析,饑餓加載特別適用于對(duì)啟動(dòng)性能要求較高的場(chǎng)景,如系統(tǒng)啟動(dòng)初期就有高并發(fā)請(qǐng)求的情況,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2024-04-04
  • 淺談JavaAPI 中 <E> 與 <T> 的含義

    淺談JavaAPI 中 <E> 與 <T> 的含義

    下面小編就為大家?guī)?lái)一篇淺談JavaAPI 中 <E> 與 <T> 的含義。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • MyBatis中SqlSession生命周期的使用

    MyBatis中SqlSession生命周期的使用

    SqlSession是MyBatis的核心接口之一,本文主要介紹了MyBatis中SqlSession生命周期的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • java接口防重提交的處理方法

    java接口防重提交的處理方法

    本文主要介紹了java接口防重提交的處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java方法重寫(xiě)的超詳細(xì)講解

    Java方法重寫(xiě)的超詳細(xì)講解

    在 Java 編程的精彩世界里,方法重寫(xiě)是一項(xiàng)極為重要且實(shí)用的特性,它猶如一把神奇的鑰匙,為我們開(kāi)啟了面向?qū)ο缶幊讨卸鄳B(tài)性的大門(mén),今天,就讓我們一同深入探索 Java 方法重寫(xiě)的奧秘,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2025-03-03

最新評(píng)論

鸡东县| 保靖县| 泰来县| 外汇| 温宿县| 宣化县| 大理市| 滦南县| 平江县| 上蔡县| 怀远县| 沅陵县| 华安县| 紫阳县| 鹤峰县| 望城县| 肃南| 乌拉特后旗| 大城县| 凤山县| 武穴市| 津市市| 黑河市| 松潘县| 衡水市| 余庆县| 隆尧县| 遂昌县| 湛江市| 桃江县| 镇远县| 康乐县| 哈尔滨市| 高台县| 上林县| 彭州市| 千阳县| 临沂市| 甘泉县| 环江| 南安市|