在插入数据时,要做唯一性检查。
可以使用mybatis,把检查写入xml文件中;也可以使用mybatis-plus来完成。
使用count,可以判断数量。
使用getOne,如果数据多于1条会抛异常。解决方式:getOne(querywrapper, false )
也可以在querywrapper加上**.last(“limit 1”)**子句
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public String checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; }
public String checkIdNumberUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SysUser::getIdNumber, user.getIdNumber()); queryWrapper.ne(SysUser::getUserId, userId); long count = count(queryWrapper); if (count > 0) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE;
}
|