QueryWrapper的使用
时间: 2023-10-18 10:30:41 浏览: 102
QueryWrapper是Mybatis-plus中的一种技术,也叫作构造器。它主要用于构建查询条件,方便进行数据库操作。常用的使用方法包括单表查询和多表联合查询。
在单表查询中,可以通过eq、ne、like、notLike等方法来设置条件,比如eq("s.name", student.getName())表示查询name字段等于student.getName()的数据。另外,还可以使用orderBy、groupBy等方法来进行排序和分组操作。
在多表联合查询中,可以通过join方法来进行表的关联,比如leftJoin、innerJoin等。然后可以使用eq、like等方法来设置条件,例如like("c.name", student.getClassName())表示查询class表中name字段包含student.getClassName()的数据。
下面是一个示例代码,展示了QueryWrapper的使用:
```java
//Controller
@GetMapping("/listAndClass")
public TableDataInfo listAndClass(Student student) {
QueryWrapper<Student> qw = new QueryWrapper<Student>();
if(StringUtils.isNotBlank(student.getName())){
qw.eq("s.name",student.getName());
}
if(StringUtils.isNotBlank(student.getClassName())){
qw.like("c.name",student.getClassName());
}
startPage();
List<Student> list = studentService.listAndClass(qw);
return getDataTable(list);
}
//Service
List<Student> listAndClass(QueryWrapper<Student> qw);
//Service impl
@Override
public List<Student> listAndClass(QueryWrapper<Student> qw) {
return this.getBaseMapper().listAndClass(qw);
}
//Mapper
@Select("select s.*,c.name from student s left join class c on s.id = c.student_id " "${ew.customSqlSegment}")
List<Student> listAndClass(@Param(Constants.WRAPPER) QueryWrapper<Student> qw);
```
这样就可以根据条件查询出对应的数据了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Java中QueryWrapper的使用](https://blog.csdn.net/weixin_46285316/article/details/122713277)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文