//测试乐观锁成功
@Test
public void testOptimisticLocker(){
//1、查询用户信息
User user = userMapper.selectById(1L);
//2、修改用户信息
user.setName(“LZY”);
user.setEmail(“222@qq.com”);
//执行更新操作
userMapper.updateById(user);
}
模拟乐观锁失败:
//测试乐观锁失败
@Test
public void testOptimisticLocker2(){
//1、查询用户信息
User user = userMapper.selectById(1L);
//2、修改用户信息
user.setName(“LZY1”);
user.setEmail(“111@qq.com”);
//1、模拟另一个线程执行了插队操作
User user2 = userMapper.selectById(1L);
//2、修改用户信息
user2.setName(“LZY2”);
user2.setEmail(“222@qq.com”);
//执行更新操作
userMapper.updateById(user2);
//执行更新操作
userMapper.updateById(user); //如果没有乐观锁就会覆盖插队线程的值
}
根据 ID 查询: T selectById(Serializable id);
根据 entity 条件,查询一条记录: T selectOne(@Param(Constants.WRAPPER) Wrapper queryWrapper);
查询(根据ID 批量查询): List selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
根据 entity 条件,查询全部记录: List selectList(@Param(Constants.WRAPPER) Wrapper queryWrapper);
查询(根据 columnMap 条件): List selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
根据 Wrapper 条件,查询全部记录: List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper queryWrapper);
根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值: List selectObjs(@Param(Constants.WRAPPER) Wrapper queryWrapper);
根据 entity 条件,查询全部记录(并翻页): IPage selectPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
根据 Wrapper 条件,查询全部记录(并翻页): IPage<Map<String, Object>> selectMapsPage(IPage page, @Param(Constants.WRAPPER) Wrapper queryWrapper);
根据 Wrapper 条件,查询总记录数: Integer selectCount(@Param(Constants.WRAPPER) Wrapper queryWrapper);
参数类型说明:
-
Serializable: 主键ID
-
Wrapper :实体对象封装操作类(可以为 null)
-
Collection<? extends Serializable>:主键ID列表(不能为 null 以及 empty)
-
Map<String, Object>: 表字段 map 对象
-
IPage:分页查询条件(可以为 RowBounds.DEFAULT)
实例测试:
@Test
public void testSelectById(){
User user =userMapper.selectById(1);
System.out.println(user);
}
//测试批量查询
@Test
public void testSelectByBatchId(){
List users =userMapper.selectBatchIds(Arrays.asList(1,2,3));
users.forEach(System.out::println);
}
//条件查询
public void testSelectByBatchIds(){
HashM