构建复杂的sql语句
条件构造器–官网链接
项目结构(不是所有都非必须)
使用条件构造器
@SpringBootTest
class ApplicationTests {
@Autowired
EmployeeService employeeService;
}
构造器-----eq()使用
@Test
void eq() {
QueryWrapper<Employee> queryWrapper = new QueryWrapper<>();
/*queryWrapper
.select("last_name","age")//指定查询字段
.eq("last_name","Tom"); //条件,等于
*/
//使用lambda表达式解决硬编码
queryWrapper.lambda()
.select(Employee::getLastName, Employee::getAge)
.eq(Employee::getLastName, "Tom");
//句意--------查询所有名字为Tom的用户名和年龄
//[Employee{id=null, lastName='Tom', email='null', gender=null, age=44}]
System.out.println(employeeService.list(queryWrapper));
}
构造器------between()、or()、inSql()使用
@Test
void between() {
QueryWrapper<Employee> queryWrapper = new QueryWrapper<>();
queryWrapper
.between("age", 25, 30) //一定范围内
.or() //连接符
.inSql("id", "select 1 from dual"); //子查询
for(Employee employee:employeeService.list(queryWrapper)){
System.err.println(employee);
}
}
updateWrapper()
@Test
void updateWrapper() {
UpdateWrapper<Employee> updateWrapper = new UpdateWrapper<>();
//updateWrapper
// //.set("last_name","xuhu")
// .setSql("last_name='xushu'") //利用set部分的Sql语句直接使用
// .eq("id",1);
updateWrapper.lambda()
.set(Employee::getLastName, "dongdong")
.set(Employee::getAge, 18)
.eq(Employee::getId, 7);
employeeService.update(updateWrapper);
}
更多移步官网----------》Mybatis-Plus官网-Wrapper构造器