ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mybatis-Plus中dao层、service封装的方法

2021-09-27 16:33:15  阅读:296  来源: 互联网

标签:queryWrapper service default dao Wrapper entity Plus Param Constants


一、service层

【添加数据:(增)】
	default boolean save(T entity); // 调用 BaseMapper 的 insert 方法,用于添加一条数据。
	boolean saveBatch(Collection<T> entityList, int batchSize); // 批量插入数据
注:
	entityList 表示实体对象集合 
	batchSize 表示一次批量插入的数据量,默认为 1000

【添加或修改数据:(增或改)】
	boolean saveOrUpdate(T entity); // id 若存在,则修改, id 不存在则新增数据
   default boolean saveOrUpdate(T entity, Wrapper<T> updateWrapper); // 先根据条件尝试更新,然后再执行 saveOrUpdate 操作
   boolean saveOrUpdateBatch(Collection<T> entityList, int batchSize); // 批量插入并修改数据 

【删除数据:(删)】
	default boolean removeById(Serializable id); // 调用 BaseMapper 的 deleteById 方法,根据 id 删除数据。
	default boolean removeByMap(Map<String, Object> columnMap); // 调用 BaseMapper 的 deleteByMap 方法,根据 map 定义字段的条件删除
	default boolean remove(Wrapper<T> queryWrapper); // 调用 BaseMapper 的 delete 方法,根据实体类定义的 条件删除对象。
	default boolean removeByIds(Collection<? extends Serializable> idList); // 用 BaseMapper 的 deleteBatchIds 方法, 进行批量删除。

【修改数据:(改)】
	default boolean updateById(T entity); // 调用 BaseMapper 的 updateById 方法,根据 ID 选择修改。
	default boolean update(T entity, Wrapper<T> updateWrapper); // 调用 BaseMapper 的 update 方法,根据 updateWrapper 条件修改实体对象。
	boolean updateBatchById(Collection<T> entityList, int batchSize); // 批量更新数据

【查找数据:(查)】
	default T getById(Serializable id); // 调用 BaseMapper 的 selectById 方法,根据 主键 ID 返回数据。
	default List<T> listByIds(Collection<? extends Serializable> idList); // 调用 BaseMapper 的 selectBatchIds 方法,批量查询数据。
	default List<T> listByMap(Map<String, Object> columnMap); // 调用 BaseMapper 的 selectByMap 方法,根据表字段条件查询
	default T getOne(Wrapper<T> queryWrapper); // 返回一条记录(实体类保存)。
	Map<String, Object> getMap(Wrapper<T> queryWrapper); // 返回一条记录(map 保存)。
	default int count(Wrapper<T> queryWrapper); // 根据条件返回 记录数。
	default List<T> list(); // 返回所有数据。
	default List<T> list(Wrapper<T> queryWrapper); // 调用 BaseMapper 的 selectList 方法,查询所有记录(返回 entity 集合)。
	default List<Map<String, Object>> listMaps(Wrapper<T> queryWrapper); // 调用 BaseMapper 的 selectMaps 方法,查询所有记录(返回 map 集合)。
	default List<Object> listObjs(); // 返回全部记录,但只返回第一个字段的值。
	default <E extends IPage<T>> E page(E page, Wrapper<T> queryWrapper); // 调用 BaseMapper 的 selectPage 方法,分页查询
	default <E extends IPage<Map<String, Object>>> E pageMaps(E page, Wrapper<T> queryWrapper); // 调用 BaseMapper 的 selectMapsPage 方法,分页查询
注:
	get 用于返回一条记录。
	list 用于返回多条记录。
	count 用于返回记录总数。
	page 用于分页查询。

【链式调用:】
	default QueryChainWrapper<T> query(); // 普通链式查询
	default LambdaQueryChainWrapper<T> lambdaQuery(); // 支持 Lambda 表达式的修改
	default UpdateChainWrapper<T> update(); // 普通链式修改
	default LambdaUpdateChainWrapper<T> lambdaUpdate(); // 支持 Lambda 表达式的修改
注:
	query 表示查询
	update 表示修改
	Lambda 表示内部支持 Lambda 写法。
形如:
	query().eq("column", value).one();
	lambdaQuery().eq(Entity::getId, value).list();
	update().eq("column", value).remove();
	lambdaUpdate().eq(Entity::getId, value).update(entity);

二、dao层

【添加数据:(增)】
	int insert(T entity);              // 插入一条记录
注:
	T         表示任意实体类型
	entity    表示实体对象

【删除数据:(删)】
	int deleteById(Serializable id);    // 根据主键 ID 删除
	int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);  // 根据 map 定义字段的条件删除
	int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper); // 根据实体类定义的 条件删除对象
	int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList); // 进行批量删除
注:
	id        表示 主键 ID
	columnMap 表示表字段的 map 对象
	wrapper   表示实体对象封装操作类,可以为 null。
	idList    表示 主键 ID 集合(列表、数组),不能为 null 或 empty

【修改数据:(改)】
	int updateById(@Param(Constants.ENTITY) T entity); // 根据 ID 修改实体对象。
	int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper); // 根据 updateWrapper 条件修改实体对象
注:
	update 中的 entity 为 set 条件,可以为 null。
	updateWrapper 表示实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句)

【查询数据:(查)】
	T selectById(Serializable id); // 根据 主键 ID 查询数据
	List<T> selectBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList); // 进行批量查询
	List<T> selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap); // 根据表字段条件查询
	T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 根据实体类封装对象 查询一条记录
	Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 查询记录的总条数
	List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 查询所有记录(返回 entity 集合)
	List<Map<String, Object>> selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 查询所有记录(返回 map 集合)
	List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 查询所有记录(但只保存第一个字段的值)
	<E extends IPage<T>> E selectPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 查询所有记录(返回 entity 集合),分页
	<E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper); // 查询所有记录(返回 map 集合),分页
注:
	queryWrapper 表示实体对象封装操作类(可以为 null)
	page 表示分页查询条件

标签:queryWrapper,service,default,dao,Wrapper,entity,Plus,Param,Constants
来源: https://www.cnblogs.com/aurora-wen/p/15343545.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有