MyBatis-Plus 的条件查询
MyBatis-Plus 的条件查询
实验目的
1.掌握 MyBatis-Plus 条件构造器(Wrapper) 的使用方法。
2.理解条件查询的基本原理。
3.掌握常见条件查询操作:等值查询,模糊查询,范围查询
4.能够使用 MyBatis-Plus 完成复杂查询操作。
实验环境
开发工具:IntelliJ IDEA
构建工具:Maven
测试工具:Postman或浏览器
AI工具:通义灵码
实验要求
在校园二手交易系统 中实现以下查询功能:
1.按商品名称查询
2.按价格区间查询商品
3.按发布人查询商品
4.模糊查询商品名称
实验内容
第一部分:准备数据库数据
向 goods 表插入测试数据:
INSERT INTO goods(title,description,price,seller)
VALUES
('二手自行车','九成新山地车',300,'张三'),
('Java编程书','Java基础教材',50,'李四'),
('笔记本电脑','轻薄办公本',2500,'王五'),
('台灯','学习台灯',30,'张三');
第二部分:编写条件查询接口
- 等值查询(eq)
根据发布人查询商品。
在 Controller 中编写接口:
@GetMapping("/seller/{seller}")
public List<Goods> getBySeller(@PathVariable String seller){
QueryWrapper<Goods> wrapper = new QueryWrapper<>();
wrapper.eq("seller", seller);
return goodsMapper.selectList(wrapper);
}
访问接口:
http://localhost:8080/goods/seller/张三
SQL效果:
SELECT * FROM goods WHERE seller='张三';
- 模糊查询(like)
根据商品名称模糊查询。
@GetMapping("/search")
public List<Goods> search(String title){
QueryWrapper<Goods> wrapper = new QueryWrapper<>();
wrapper.like("title", title);
return goodsMapper.selectList(wrapper);
}
访问:
http://localhost:8080/goods/search?title=书
SQL效果:
SELECT * FROM goods WHERE title LIKE '%书%';
- 范围查询(between)
查询价格区间商品。
@GetMapping("/price")
public List<Goods> getByPrice(Double min, Double max){
QueryWrapper<Goods> wrapper = new QueryWrapper<>();
wrapper.between("price", min, max);
return goodsMapper.selectList(wrapper);
}
访问:
http://localhost:8080/goods/price?min=50&max=500
SQL效果:
SELECT * FROM goods WHERE price BETWEEN 50 AND 500;
- Lambda 条件查询(推荐)
Lambda 写法更加安全:
@GetMapping("/lambda")
public List<Goods> lambdaQuery(String seller){
LambdaQueryWrapper<Goods> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Goods::getSeller, seller);
return goodsMapper.selectList(wrapper);
}
优点:
防止字段写错
支持自动重构
代码更安全
第三部分:测试功能
- 等值查询
2.模糊查询
3.范围查询
4.Lambda条件查询
