1. 基础 CRUD 方法
在 IService 接口的基础上,MyBatis-Plus 的 Service 接口提供了一些默认实现的 CRUD 方法:
- boolean save(T entity): 插入一条记录。
- boolean saveBatch(Collection<T> entityList): 批量插入记录。
- boolean saveOrUpdate(T entity): 插入或更新一条记录,根据主键是否存在判断。
- boolean saveOrUpdateBatch(Collection<T> entityList): 批量插入或更新记录,根据主键是否存在判断。
- boolean updateById(T entity): 根据主键更新记录。
- boolean updateBatchById(Collection<T> entityList): 批量根据主键更新记录。
- boolean removeById(Serializable id): 根据主键删除记录。
- boolean removeByIds(Collection<? extends Serializable> idList): 批量根据主键删除记录。
2. 其他常用方法
在 MyBatis-Plus 的 Service 接口中还提供了一些其他常用的方法:
- T getById(Serializable id): 根据主键查询记录,返回单个实体。
- List<T> listByIds(Collection<? extends Serializable> idList): 根据多个主键批量查询记录,返回实体列表。
- List<T> list(Wrapper<T> queryWrapper): 根据条件查询记录,返回实体列表。
- Map<String, Object> getMap(Wrapper<T> queryWrapper): 根据条件查询记录,返回 Map。
- IPage<T> page(IPage<T> page, Wrapper<T> queryWrapper): 分页查询记录,返回分页对象。
- List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper): 根据条件查询记录,返回 Map 列表。
- List<Object> listObjs(Wrapper<T> queryWrapper): 根据条件查询记录,返回 Object 列表。
- int count(Wrapper<T> queryWrapper): 根据条件统计记录数。
3. 示例
以一个 UserService 为例:
import com.baomidou.mybatisplus.extension.service.IService;
public interface UserService extends IService<User> {
boolean customSave(User user);
List<User> customQuery(String name, Integer age);
// 其他自定义业务方法...
}
实现类:
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
@Override
public boolean customSave(User user) {
// 自定义保存逻辑...
return save(user);
}
@Override
public List<User> customQuery(String name, Integer age) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", name)
.eq("age", age);
return list(queryWrapper);
}
// 其他自定义业务方法的实现...
}
通过继承 ServiceImpl 并实现自定义的 Service 接口,可以非常方便地在业务层进行数据库操作,无需编写复杂的 SQL 语句。这些方法都是基于 BaseMapper 提供的方法的封装,提高了业务层的开发效率。在 Service 层,你还可以定义更多自定义的业务方法,根据业务需求进行定制。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7046/MyBatis