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

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

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

MyBatis反向生成Example類使用

一、逆向工程

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

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

二、Example類的生成

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

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

三、Example類的使用

打開一個Exapmle類我們會看到以下幾個成員

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

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

四、使用方法

在service種可以這么寫

//指定要進(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)目開發(fā)中多次使用MyBatis逆向工程生成的Example類,但一直沒有對其下的方法做一個簡單的總結(jié),現(xiàn)總結(jié)如下:

一、mapper接口中的方法解析

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

方法 功能說明
int countByExample(UserExample example) thorws SQLException 按條件計數(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)制的才會產(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的逆向工程中會生成實(shí)體類及實(shí)體類對應(yīng)的example類,example類用于添加條件,相當(dāng)where后面的部分。

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

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

方法 功能說明
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中包含一個static的內(nèi)部類Criteria,Criteria中的方法是定義SQL 語句where后的查詢條件。

三、小結(jié)一下

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

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

相關(guān)文章

最新評論