Mybatis Plus CRUD 接口
TIP
MyBatis-Plus 提供了丰富的 CRUD 方法,无需编写 XML 即可完成大部分数据库操作。
Mapper 层 CRUD
java
public interface UserMapper extends BaseMapper<User> {
// 已继承以下方法
}
// 增
int insert(T entity);
// 删
int deleteById(Serializable id);
int deleteByMap(Map<String, Object> columnMap);
int delete(Wrapper<T> wrapper);
int deleteBatchIds(Collection<? extends Serializable> idList);
// 改
int updateById(T entity);
int update(T entity, Wrapper<T> updateWrapper);
// 查
T selectById(Serializable id);
List<T> selectBatchIds(Collection<? extends Serializable> idList);
List<T> selectByMap(Map<String, Object> columnMap);
T selectOne(Wrapper<T> queryWrapper);
List<T> selectList(Wrapper<T> queryWrapper);
Page<T> selectPage(Page<T> page, Wrapper<T> queryWrapper);
long selectCount(Wrapper<T> queryWrapper);Service 层 CRUD
借助 IService 和 ServiceImpl 实现:
java
public interface UserService extends IService<User> {
// 继承通用 Service 方法
}
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User>
implements UserService {
// 继承的方法可覆盖或补充
}
// 使用通用 Service
@Service
public class OrderService {
@Autowired
private UserService userService;
public void businessMethod() {
// 批量操作
List<User> users = userService.list();
// 链式查询
User user = userService.lambdaQuery()
.eq(User::getName, "张三")
.ge(User::getAge, 18)
.one();
// 链式更新
userService.lambdaUpdate()
.eq(User::getId, 1L)
.set(User::getAge, 30)
.update();
// 分页查询
Page<User> page = userService.page(
new Page<>(1, 10),
Wrappers.lambdaQuery(User.class)
.orderByDesc(User::getCreateTime)
);
}
}常用查询示例
java
// 1. 根据 ID 查询
User user = userMapper.selectById(1L);
// 2. 根据名称查询
User user = userMapper.selectOne(
new QueryWrapper<User>().eq("name", "张三")
);
// 3. 模糊查询
List<User> users = userMapper.selectList(
new QueryWrapper<User>()
.like("name", "张")
.between("age", 18, 30)
.orderByDesc("create_time")
);