1、CRUD功能
增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)
2、分页功能
日志设置
3、条件查询
//1、条件查询
QueryWrapper qw = new QueryWrapper<>();
qw.lt("age",22);
List<User> userList = userDao.selectList(qw);
System.out.println(userList);
//2、lambda格式
QueryWrapper<User> qw = new QueryWrapper<User>();
qw.lambda().lt(User::getAge,22);
List<User> userList = userDao.selectList(qw);
System.out.println(userList);
//3
LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
lqw.lt(User::getAge,22);
List<User> userList = userDao.selectList(lqw);
System.out.println(userList);
//大于等于18,小于65
qw.lt("age",65).ge("age",18);
qw.lamda.lt(User::getAge,65).ge(User::getAge,18);
lqw.lt(User::getAge,65).ge(User::getAge,18);
//或者
lqw.lt(User::getAge,65).or().ge(User::getAge,18);
//第一个参数是否为true,为true则连接当前条件
lqw.gt(null!=uq.getAge(), User::getAge,uq.getAge());
EQ | equal | 等于 |
NE | not equal | 不等于 |
GT | greater than | 大于 |
LT | less than | 小于 |
GE | greater than or equal | 大于等于 |
LE | less than or equal | 小于等于 |
4、查询投影
//查询结果包含模型类中部分属性
lqw.select(User::getId,User::getName,User::getAge);
//查询结果包含模型类中未定义的属性
qw.select("count(*) as count, gender");
qw.groupBy("gender");
5、查询条件
范围查询:between lqw.libetween(User::getAge, 10, 30);//前面值小
模糊查询:like lqw.like(User::getName,"J");
//likeLeft: %J likeRight:J%
6、字段映射与表名映射
@TableField @TableName(类注解)
模型类属性定义上方
设置当前属性对应的数据库表中的字段关系
@TableField(value="pwd")
private String password;
//value:设置数据库表中字段名称
//exist:设置属性在数据库表中是否存在,无法与value合并使用
//select:设置属性是否参与查询,此属性与select()映射配置不冲突
@TableName("tbl_user")
public class User{
private Long id;
}
逻辑删除(物理删除)
@TableLogic(value="0")
private Integer deleted;
乐观锁
(秒杀问题,并发访问)
@Version
private Interger version;
//update set abc=1,version=version+1 where version=1
//加拦截器