MyBatis-Plus
提供的BaseMapper
接口,内置了很多单表CRUD
功能,我们只需要定义一个接口去继承它,就能瞬间拥有这些能力。
官方文档 传送门
下面,详细整理BaseMapper
提供的能力。
增
1. 传入实体Entity对象,添加一条记录
int insert(T entity);
例子:
@Test
public void testInsert() {
UserEntity user = new UserEntity();
user.setId(6L);
user.setName("Michael");
user.setAge(28);
user.setEmail("test6@baomidou.com");
userMapper.insert(user);
}
控制台打印出来的日志:
==> Preparing: INSERT INTO tb_user ( id, name, age, email ) VALUES ( ?, ?, ?, ? )
==> Parameters: 6(Long), Michael(String), 28(Integer), test6@baomidou.com(String)
<== Updates: 1
删
1. 传入主键ID的值,根据主键ID删除一条记录
int deleteById(Serializable id);
例子:
@Test
public void testDeleteById() {
userMapper.deleteById(6L);
}
控制台打印出来的日志:
==> Preparing: DELETE FROM tb_user WHERE id=?
==> Parameters: 6(Long)
<== Updates: 1
2. 传入实体Entity对象,根据实体中的主键ID删除一条数据
int deleteById(T entity);
例子:
@Test
public void testDeleteById2() {
UserEntity user = new UserEntity();
user.setId(6L);
userMapper.deleteById(user);
}
设置主键ID就可以了。
控制台打印出来的日志:
==> Preparing: DELETE FROM tb_user WHERE id=?
==> Parameters: 6(Long)
<== Updates: 1
3. 根据 columnMap 条件,删除记录
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
columnMap
中传入where
条件字段和值。
支持AND
、等值匹配。
例子:
@Test
public void testDeleteByMap() {
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("name", "Billie");
columnMap.put("age", 24);
userMapper.deleteByMap(columnMap);
}
控制台打印出来的日志:
==> Preparing: DELETE FROM tb_user WHERE name = ? AND age = ?
==> Parameters: Billie(String), 24(Integer)
<== Updates: 1
4. 根据wrapper条件删除记录
int delete(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
queryWrapper
封装Entity
,作为where
条件。
支持非等值匹配。
例子:
@Test
public void testDeleteByWrapper() {
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
wrapper.likeRight("name", "J");
userMapper.delete(wrapper);
}
控制台打印出来的日志:
==> Preparing: DELETE FROM tb_user WHERE (name LIKE ?)
==> Parameters: J%(String)
<== Updates: 2
5. 根据主键ID集合批量删除记录
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
例子:
@Test
public void testDeleteBatchIds() {
List<Long> ids =