ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MyBatis-Plus 的条件查询

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,'张三');

第二部分:编写条件查询接口

  1. 等值查询(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='张三';

  1. 模糊查询(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 '%书%';

  1. 范围查询(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;

  1. Lambda 条件查询(推荐)

Lambda 写法更加安全:

@GetMapping("/lambda")
public List<Goods> lambdaQuery(String seller){

LambdaQueryWrapper<Goods> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Goods::getSeller, seller);

return goodsMapper.selectList(wrapper);
}

优点:

防止字段写错

支持自动重构

代码更安全

第三部分:测试功能

  1. 等值查询

2.模糊查询

3.范围查询

4.Lambda条件查询

返回列表