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

Java中mybatis關于example類的使用詳解

 更新時間:2020年07月20日 12:11:43   作者:無睚  
這篇文章主要介紹了Java中mybatis中關于example類的使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

這幾天剛接觸example,很多內容都是破碎的,寫一篇博文加深理解。

一、什么是example類

     mybatis-generator會為每個字段產生如上的Criterion,如果表的字段比較多,產生的Example類會十分龐大。理論上通過example類可以構造你想到的任何篩選條件。在mybatis-generator中加以配置,配置數據表的生成操作就可以自動生成example了。具體配置可以參考MBG有關配置。
     下面是mybatis自動生成example的使用。

二、了解example成員變量

//升序還是降序
  //參數格式:字段+空格+asc(desc)
  protected String orderByClause;
  //去除重復
  //true是選擇不重復記錄
  protected boolean distinct;
  //自定義查詢條件
  //Criteria的集合,集合中對象是由or連接
  protected List<Criteria> oredCriteria;
  //內部類Criteria包含一個Cretiron的集合,
  //每一個Criteria對象內包含的Cretiron之間
  //是由AND連接的
  public static class Criteria extends GeneratedCriteria {
   protected Criteria() {
    super(); 
   }
  }
  //是mybatis中逆向工程中的代碼模型
  protected abstract static class GeneratedCriteria
  {…..}
  //是最基本,最底層的Where條件,用于字段級的篩選
  public static class Criterion {……}

三、example使用前的準備

     比如我的example是根據user表生成的,UserMapper屬于dao層,UserMapper.xml是對應的映射文件
     UserMapper接口:

long countByExample(CompetingStoreExample example);
List<CompetingStore> selectByExample(CompetingStoreExample example);

    在我們的測試類里:

     UserExample example = new UserExample();
     UserExample.Criteria criteria = example.createCriteria();

四、查詢用戶數量

 long count = UserMapper.countByExample(example);

      類似于:select count(*) from user

五、where條件查詢或多條件查詢

 example.setOrderByClause("age asc");//升序
     example.setDistinct(false);//不去重
 
     if(!StringUtils.isNotBlank(user.getName())){
          Criteria.andNameEqualTo(user.getName());
     }
 
     if(!StringUtils.isNotBlank(user.getSex())){
          Criteria.andSexEqualTo(user.getSex());
     }
 
     List<User> userList=userMapper.selectByExample(example);

     類似于:select * from user where name={#user.name} and sex={#user.sex} order by age asc;

 UserExample.Criteria criteria1 = example.createCriteria();
     UserExample.Criteria criteria2 = example.createCriteria();
 
     if(!StringUtils.isNotBlank(user.getName())){
          Criteria1.andNameEqualTo(user.getName());
     }
 
     if(!StringUtils.isNotBlank(user.getSex())){
          Criteria2.andSexEqualTo(user.getSex());
     }
 
     Example.or(criteria2);
     List<User> userList=userMapper.selectByExample(example);

     類似于:select * from user where name={#user.name} or sex={#user.sex} ;

六、模糊查詢

      if(!StringUtils.isNotBlank(user.getName())){
           criteria.andNameLIke(‘%'+name+'%');
      }
 
      List<User>  userList=userMapper.selectByExample(example);

      類似于:

select * from user where name like %{#user.name}%

七、分頁查詢

        int start = (currentPage - 1) * rows;
        //分頁查詢中的一頁數量
        example.setPageSize(rows);   
        //開始查詢的位置
        example.setStartRow(start);
        List<User> userList=userMapper.selectByExample(example);

        類似于:

select * from user limit start to rows

到此這篇關于Java中mybatis中關于example類的使用詳解的文章就介紹到這了,更多相關Java mybatis中example類內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java數組中的元素刪除并實現向前移的代碼

    Java數組中的元素刪除并實現向前移的代碼

    這篇文章主要介紹了Java數組中的元素刪除并實現向前移的代碼的相關資料,需要的朋友可以參考下
    2016-05-05
  • Java持久層框架Mybatis入門詳細教程

    Java持久層框架Mybatis入門詳細教程

    Mybatis持久層框架支持自定義SQL、存儲過程以及高級映射,可以通過XML或注解來配置和映射原始類型、接口和Java POJOs為數據庫中的記錄,接下來通過本文給大家介紹Java持久層框架Mybatis入門詳細教程,一起學習下吧
    2021-06-06
  • Java8 使用流抽取List<T>集合中T的某個屬性操作

    Java8 使用流抽取List<T>集合中T的某個屬性操作

    這篇文章主要介紹了Java8 使用流抽取List<T>集合中T的某個屬性操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java 容器類源碼詳解 Set

    Java 容器類源碼詳解 Set

    這篇文章主要介紹了Java 容器類源碼詳解 Set,Set 表示由無重復對象組成的集合,也是集合框架中重要的一種集合類型,直接擴展自 Collection 接口。,需要的朋友可以參考下
    2019-06-06
  • SpringBoot實現API接口多版本支持的示例代碼

    SpringBoot實現API接口多版本支持的示例代碼

    這篇文章主要介紹了SpringBoot實現API接口多版本支持的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • java鎖機制ReentrantLock源碼實例分析

    java鎖機制ReentrantLock源碼實例分析

    這篇文章主要為大家介紹了java鎖機制ReentrantLock源碼實例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • java輸入空行結束問題

    java輸入空行結束問題

    這篇文章主要介紹了java輸入空行結束問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用SpringBoot簡單實現一個蘋果支付的場景

    使用SpringBoot簡單實現一個蘋果支付的場景

    這篇文章主要為大家詳細介紹了如何在Spring?Boot項目中集成Apple?Pay功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-11-11
  • SpringBoot運行時修改定時任務Cron表達式的實現方案

    SpringBoot運行時修改定時任務Cron表達式的實現方案

    在項目開發(fā)中,定時任務是一個常見的需求,SpringBoot通過@Scheduled注解提供了簡便的定時任務實現方式,但默認情況下,一旦應用啟動,定時任務的Cron表達式就無法動態(tài)調整,本文將介紹如何在SpringBoot應用運行期間動態(tài)修改定時任務的Cron表達式,需要的朋友可以參考下
    2025-06-06
  • Java中使用WebUploader插件上傳大文件單文件和多文件的方法小結

    Java中使用WebUploader插件上傳大文件單文件和多文件的方法小結

    這篇文章主要介紹了Java中使用WebUploader插件上傳大文件單文件和多文件的方法小結的相關資料,需要的朋友可以參考下
    2016-06-06

最新評論