-
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
- PHP後臺核心框架、自定義擴充套件功能 直接上手做功能開發即可PHP框架套件
- 用mysqlslap壓測自定義sqlMySql
- 自定義Mybatis-plus外掛(限制最大查詢數量)MyBatis
- 自定義限速功能實踐——Caffeine
- uniapp增加自定義埋點功能APP
- Spring核心思想之 AOP:在自定義容器基礎上實現AOP功能Spring
- 實現MyBatisPlus自定義sql注入器MyBatisSQL
- 如何使用小程式自定義元件功能元件
- 解鎖自定義分享功能新姿勢
- 自定義限速功能實踐——Map 版本
- WebView自定義長按圖片功能WebView
- 在Jetbrain IDE中自定義TODO功能AIIDE
- sql中select列有自定義函式 dblinkSQL函式
- 單據列表呼叫自定義SQL函式SQL函式
- 小書MybatisPlus第3篇-自定義SQLMyBatisSQL
- vue-自定義指令-實現提示功能Vue
- video自定義實現視訊播放功能IDE
- SQL優化案例-自定義函式索引(五)SQL優化函式索引
- T-SQL——自定義函式解析JSON字串SQL函式JSON字串
- Mybatis-plus外掛功能MyBatis
- mybatis-plus自定義mapper報org.apache.ibatis.binding.BindingException: Invalid bound statement(not found)MyBatisAPPApacheException
- 自定義檔案上傳功能實現方法
- Android中的Gradle之玩轉自定義功能AndroidGradle
- Visio 中自定義首字母大寫功能
- Python進階:自定義物件實現切片功能Python物件
- SQL最佳化案例-自定義函式索引(五)SQL函式索引
- 疑問:mybatis如何自定義SQL執行時長MyBatisSQL
- mybatis-plus匯入sql日誌MyBatisSQL
- 【TUNE_ORACLE】列出帶有自定義函式的SQL的SQL參考Oracle函式SQL
- 在python中使用sqlite的自定義函式功能PythonSQLite函式
- mysql使用自定義序列實現row_number功能MySql
- EMQX 多版本釋出、新增自定義函式功能MQ函式
- fastadmin新增自定義按鈕,並使用彈窗功能AST
- 透過mybatis-plus的自定義攔截器實現控制 mybatis-plus的全域性邏輯刪除欄位的控制 (修改其最終執行的sql中的where條件)MyBatisSQL
- 自定義註解例項實現SQL語句生成SQL