一、BaseMapper方法详解
1、Insert
// 插入一条记录
int insert(T entity);
2、Delete
// 根据 entity 条件,删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
// 删除(id集合 批量删除,不能为 null 以及 empty)——例如参数为:List<String> idList;
int deleteBatchIds(idList);
// 根据 ID 删除
int deleteById(id);
// 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
3、Update
// 根据 whereEntity 条件,更新记录
int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
// 根据 ID 修改,实体中set id参数,然后将实体直接传入。
int updateById(T entity);
4、Select
// 根据 ID 查询
T selectById(Serializable id);
// 根据 entity 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据ID 批量查询,与上述删除类似)
List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 entity 条件,查询全部记录,参数为null,查询所有记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 查询(根据 columnMap 条件)
List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
// 根据 Wrapper 条件,查询全部记录
List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录。注意: 只返回第一个字段的值
List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 分页查询
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
例如:
Page p = new Page(pageNum, pageSize);
QueryWrapper<ReportIndexDO> queryWrapper = new QueryWrapper<>();
//设置查询条件,进行模糊查询
queryWrapper.lambda().like(!StringUtils.isEmpty(indexName),ReportIndexDO::getIndexName,indexName).
eq(!StringUtils.isEmpty(frequency),ReportIndexDO::getReportingFreq,frequency);
xxxMapper.selectPage(p,queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<Map<String, Object>> selectMapsPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
二、BaseMapper方法实例
public class lkmMapper {
@Resource
private UserMapper userMapper;
/**
* 获取所有用户
*/
@Test
public void selectList(){
userMapper.selectList(null);
}
/**
* 根据指定条件 查询符合条件的用户 (selectList传参数的查询形式)
*/
@Test
public void selectAllList(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("name",lkm);
userMapper.selectList(queryWrapper);
}
/**
* 根据 id 查询指定用户
*/
@Test
public void selectById(){
userMapper.selectById(001);
}
/**
* 根据 ID 批量查询用户
*/
@Test
public void selectBatchIds(){
List<Integer> integers = Arrays.asList(1,2,3);
userMapper.selectBatchIds(integers);
}
/**
* 根据 Map搜索条件查询指定条件下的用户
*/
@Test
public void selectByMap(){
Map<String,Object> map = new HashMap<>();
map.put("name","lkm");
userMapper.selectByMap(map);
}
/**
* wrapper 查询一条数据
*/
@Test
public void selectOne(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name","lkm");
userMapper.selectOne(queryWrapper);
}
/**
* 根据指定条件查询符合条件的记录数
*/
@Test
public void selectCount(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.gt("name",lkm);
userMapper.selectCount(queryWrapper);
}
/**
* 根据指定条件查询用户
*/
@Test
public void selectMaps(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("name",lkm);
userMapper.selectMaps(queryWrapper);
}
/**
* 根据指定条件查询符合条件的用户 (只返回第一个字段值)
*/
@Test
public void selectObjs(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("name",lkm);
userMapper.selectObjs(queryWrapper);
}
/**
* 查询所有用户并分页
*/
@Test
public void selectPage(){
Page p = new Page(pageNum, pageSize);
QueryWrapper<ReportIndexDO> queryWrapper = new QueryWrapper<>();
reportIndexMapper.selectPage(p,queryWrapper)
}
/**
* 查询所有用户并分页
*/
@Test
public void selectMapsPage(){
Page<User> page = new Page<>(1,2);
IPage<Map<String, Object>> mapIPage = userMapper.selectMapsPage(page, null);
List<Map<String, Object>> records = mapIPage.getRecords();
}
/**
* 插入一条记录
*/
@Test
public void insert(){
User user = new User();
user.setUsername("lkm");
userMapper.insert(user);
}
/**
* 根据ID删除一条记录
*/
@Test
public void deleteById(){
userMapper.deleteById(001);
}
/**
* 根据指定 Map 条件删除记录
*/
@Test
public void deleteByMap(){
Map<String,Object> map = new HashMap<>();
map.put("name",lkm);
userMapper.deleteByMap(map);
}
/**
* 根据指定 Wrapper 条件删除记录
*/
@Test
public void delete(){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.likeRight("name","lkm");
userMapper.delete(queryWrapper);
}
/**
* 根据指定ID批量删除记录
*/
@Test
public void deleteBatchIds(){
List<Integer> integers = Arrays.asList(001, 002);
userMapper.deleteBatchIds(integers);
}
/**
* 根据指定条件更新记录
*/
@Test
public void update(){
User user = new User();
user.setEmail("lkm@qq.com");
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("name","lkm");
userMapper.update(user, updateWrapper);
}
/**
* 指定ID 更新记录
*/
@Test
public void updateById(){
User user = new User();
user.setId(001);
user.setNmae("lkm");
userMapper.updateById(user);
}