One
# 单条数据查询One类
场景:查询单条数据,返回一个对象,并且可以对其进行一系列的后续处理
# 所用到的实体类
@Data
public class UserInfo implements IGenerateMapper {
private static final long serialVersionUID = -7219188882388819210L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String name;
private Integer age;
private String email;
@Version
private Integer version;
@TableLogic(value = "'2001-01-01 00:00:00'", delval = "NOW()")
private LocalDateTime gmtDeleted;
}
# of
用于构造一个单条数据条件查询构造器
注意
- 排除复杂条件查询之外的条件都会通过SFunction返回值进行匹配
final One<UserInfo, Long, UserInfo> oneQuery = One.of(UserInfo::getId);
// 代表后续的查询条件除去复杂条件查询之外 都会通过id进行匹配
# eq
场景 拼接条件:等于
final UserInfo userInfo = One.of(UserInfo::getId).eq(1L).query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1的数据查询出来
# value
场景:映射返回字段,只需要返回指定的字段
注意
- 底层执行sql时只会查询对应的字段,并不是select * from xxx然后再map指定字段
String name = One.of(UserInfo::getId).eq(1L).value(UserInfo::getName).query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1的数据查询出来,并且只返回name字段
# condition
场景:复杂查询自定义拼接
String leAgeName =
One.of(UserInfo::getId)
.eq(1L)
.value(UserInfo::getName)
.condition(w -> w.le(UserInfo::getAge, 20))
.query();
// 将UserInfo实体对应表中的id属性所对应的字段等于1同时年龄小于等于20的数据查询出来,并且只返回name字段,
# like
场景:拼接条件:模糊查询
One.of(UserInfo::getEmail).value(UserInfo::getName).like("test3").query(false);
// 查询UserInfo实体对应表中的email字段模糊匹配test3的数据,并且只返回name字段
# query
场景:拼接完条件之后查询单条数据方法
注意
- 有一个参数,默认为false 如果为true,那么如果查询结果为多条的话就会抛出异常,反正则取多条数据中的第一条
# 测试用例地址
上次更新: 2024/03/29, 09:17:32