MybatisPlus使用Wrapper實現查詢功能


Wrapper---條件查詢器

  :使用它可以實現很多復雜的查詢

 

幾個案例

 

 環境:

  參照博客MybatisPlus入門程序

 

1.條件查詢

1.1 查詢name不為空的用戶,並且郵箱不為空的用戶,年齡大於等於12的用戶

//查詢name不為空的用戶,並且郵箱不為空的用戶,年齡大於等於12
 @Test
 void selectBy01(){
 ​
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper
             .isNotNull("name") //name不為空的用戶
             .isNotNull("email") //郵箱不為空的用戶
             .ge("age",12); //年齡大於等於12
 ​
     userMapper.selectList(wrapper).forEach(System.out::println);
 }

結果

 

 

1.2 查詢 name"Jone" 的用戶

//查詢name為 "Jone" 的用戶
 @Test
 void selectBy02(){
 ​
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper.eq("name","Jone"); //name為 "Jone" 的用戶
//查詢一個數據,為多個用 selectList 或者 selectByMap
     User user = userMapper.selectOne(wrapper);
 ​
     System.out.println(user);
 }

結果

 

1.3 查詢 10 到 20 歲的用戶數

 //查詢 10 到 20 歲的用戶數
 @Test
 void selectBy03(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper.between("age",10,20);
 ​
     Integer count = userMapper.selectCount(wrapper);
     //查詢 10 到 20 歲的用戶的結果數
 ​
     System.out.println(count);
 }

結果

 

 

2.模糊查詢

2.1 使用 like + notLike + likeRight

 @Test
 void selectLike01(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper
             .notLike("name","To") //名字不包含 To
             .like("name","o") //名字包含 o 的
             //左和右 左:%e   右:e%  兩邊:%e%
             //右查詢
             .likeRight("email","test");
 ​
     List<Map<String, Object>> users = userMapper.selectMaps(wrapper);
     users.forEach(System.out::println);
 }

結果

 

2.2 子查詢

 @Test
 void selectLike02(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     wrapper
             //一個SQL語句寫的子查詢
             .inSql("id","select id from user where age<20");
 ​
     List<Object> users = userMapper.selectObjs(wrapper);
     users.forEach(System.out::println);
 }

結果

 

2.3 降序排序

@Test
 void selectLike03(){
     QueryWrapper<User> wrapper=new QueryWrapper<>();
     //降序排序
     wrapper.orderByDesc("id");
     //升序排序
     //wrapper.orderByAsc("id");
 ​
     List<User> users = userMapper.selectList(wrapper);
     users.forEach(System.out::println);
 }

結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM