-
MyBatis-Plus提供了強大的條件構造器。透過條件構造器可以寫一些複雜的SQL語句,從而提高我們的開發效率。透過 EntityWrapper(簡稱 EW,MP 封裝的一個查詢條件構造器)或者 Condition(與 EW 類似) 來讓使用者自由的構建查詢條件,簡單便捷,沒有額外的負擔, 能夠有效提高開發效率,它主要用於處理 sql 拼接,排序,實體引數查詢等。
-
舉例
@Test void testWrapper1() { QueryWrapper<Person> wrapper=new QueryWrapper<>(); HashMap<String,Object> map=new HashMap<>(); map.put("name","zhangsan"); map.put("age",20); wrapper.allEq(map); List<Person> personList = personMapper.selectList(wrapper); personList.forEach(System.out::println); } @Test void testWrapper4() { QueryWrapper<Person> wrapper=new QueryWrapper<>(); wrapper.gt("age",18); //大於等於 List<Person> personList = personMapper.selectList(wrapper); personList.forEach(System.out::println); } @Test void testWrapper9() { QueryWrapper<Person> wrapper=new QueryWrapper<>(); //模糊查詢 wrapper.like("name","o"); List<Person> personList = personMapper.selectList(wrapper); personList.forEach(System.out::println); } //根據年齡進行分組查詢 @Test void testWrapper19() { QueryWrapper<Person> wrapper=new QueryWrapper<>(); wrapper.groupBy("age"); List<Person> personList = personMapper.selectList(wrapper); personList.forEach(System.out::println); }
-
自定義SQL:Mybatis-Plus(以下簡稱MBP)的初衷是為了簡化開發,而不建議開發者自己寫SQL語句的;但是有時客戶需求比較複雜,僅使用MBP提供的Service,Mapper與Wrapper進行組合,難以實現可以需求; 這時我們就要用到自定義的SQL了。
- 註解SQL
public interface CarMapper extends BaseMapper<Car> { @Select("select * from car where car_seq = #{carSeq}") Car queryCar(String carSeq); }
- Wrapper傳參+註解SQL
//建立Wrapper物件 QueryWrapper<Entity> wrapper = new QueryWrapper<>(); //設定查詢條件 wrapper.eq("column1", value1) .ne("column2", value2) .like("column3", value3); //示例 wrapper.eq("car_state", "1") .like("car_id", "渝A"); //mapper介面 @Select("select * from car ${ew.customSqlSegment}") Page<Car> selectByPrimaryKey(Page<Car> page, @Param(Constants.WRAPPER) QueryWrapper<Car> queryWrapper); //完整程式碼 //分頁查詢方式1 QueryWrapper<Car> wrapper = new QueryWrapper<>(); Page<Car> resultPage = new Page<>(1, 10); wrapper.eq("car_state", "1") .like("car_id", "渝A") .orderByAsc("car_id");//排序 carMapper.selectByPrimaryKey(resultPage,wrapper); //分頁查詢方式2 IPage<Car> page = new Page<>(1, 10); // 分頁查詢 LambdaQueryWrapper<Car> qw = new LambdaQueryWrapper<Car>() .like(Car::getCarId, "渝A") // 車牌號 = .eq(Car::getCarState, 1); // 狀態 //selectPage是BaseMapper自帶方法 IPage<Car> userPage = carMapper.selectPage(page, qw)
- Wrapper傳參+xml檔案SQL
//mapper類 Car selectBySeq (@Param(Constants.WRAPPER) QueryWrapper<Car> queryWrapper); //xml配置檔案 <select id="selectBySeq " resultMap="BaseResultMap"> select * from `car` ${ew.customSqlSegment} </select> //透過Wapper傳遞查詢引數 @RequestMapping("/ok") public void testCustomSQL2() { LambdaQueryWrapper<Car> query = new LambdaQueryWrapper<>(); query.eq(Car::getCarId, "11"); Car car= carMapper.queryCarSeq(query); System.out.println(car.toString()); } //或者 Wrapper wrapper = new QueryWrapper<Car>().eq("car_state", 1).like("cai_id", "渝"); List<Car> userList = carMapper.queryCarSeq(wrapper);
Mybatis-plus核心功能-自定義SQL
相關文章
- Mybatis-Plus如何自定義SQL隱碼攻擊器?MyBatisSQL
- MyBatis-Plus Generator自定義模板MyBatis
- Mybatis-plus排除自定義欄位不查詢MyBatis
- SQL自定義排序SQL排序
- 自定義Mybatis-plus外掛(限制最大查詢數量)MyBatis
- 自定義SAP功能表
- PHP後臺核心框架、自定義擴充套件功能 直接上手做功能開發即可PHP框架套件
- Pl/SQL 自定義型別SQL型別
- 自定義PL/SQL異常SQL
- SQL SERVER 自定義函式SQLServer函式
- SQL 自定義函式FUNCTIONSQL函式Function
- 自定義限速功能實踐——Caffeine
- GridView自定義列資料繫結,和自定義頒功能View
- 用mysqlslap壓測自定義sqlMySql
- Sql Server系列:自定義函式SQLServer函式
- Linq to sql 自定義型別SQL型別
- 解鎖自定義分享功能新姿勢
- WebView自定義長按圖片功能WebView
- uniapp增加自定義埋點功能APP
- 應用PPT的自定義放映功能
- 自定義限速功能實踐——Map 版本
- 微信開發 分享功能 php,自定義微信分享功能PHP
- Mybatis-plus外掛功能MyBatis
- Spring核心思想之 AOP:在自定義容器基礎上實現AOP功能Spring
- vue-自定義指令-實現提示功能Vue
- canvas之自定義頭像功能實現Canvas
- 自定義Report 變數儲存功能變數
- 實現MyBatisPlus自定義sql注入器MyBatisSQL
- SQL Server 中自定義資料型別SQLServer資料型別
- 單據列表呼叫自定義SQL函式SQL函式
- video自定義實現視訊播放功能IDE
- 自定義檔案上傳功能實現方法
- 在Jetbrain IDE中自定義TODO功能AIIDE
- WordPress新增自定義sidebar側邊欄功能IDE
- 小書MybatisPlus第3篇-自定義SQLMyBatisSQL
- SQL優化案例-自定義函式索引(五)SQL優化函式索引
- sql mode 和使用者自定義分割槽SQL
- mysql使用自定義序列實現row_number功能MySql