mybatis-plus 3.X 配置
Posted 木枝木枝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-plus 3.X 配置相关的知识,希望对你有一定的参考价值。
官网配置参数说明地址:https://mp.baomidou.com/config/#logicdeletevalue
本地配置:yml
mybatis-plus: mapper-locations: classpath*:mybatis/*.xml type-aliases-package: com.genergy.cloud.model.entity global-config: db-config: field-strategy: not_empty id-type: auto db-type: mysql banner: false super-mapper-class: com.genergy.cloud.mapper.BaseMapper
package com.genergy.cloud.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; import java.io.Serializable; import java.util.Collection; import java.util.List; /** * BaseMapper 基于 MP 删减 * * @author Caratacus * @see com.baomidou.mybatisplus.core.mapper.BaseMapper */ public interface BaseMapper<T> { /** * <p> * 插入一条记录 * </p> * * @param entity 实体对象 */ int insert(T entity); /** * <p> * 批量插入数据 * </p> * * @param entityList 实体对象集合 */ int insertBatchSomeColumn(@Param("list") Collection<T> entityList); /** * <p> * 根据 ID 删除 * </p> * * @param id 主键ID */ int deleteById(Serializable id); /** * <p> * 根据 entity 条件,删除记录 * </p> * * @param queryWrapper 实体对象封装操作类(可以为 null) */ int delete(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); /** * <p> * 根据 ID 修改 * </p> * * @param entity 实体对象 */ int updateById(@Param(Constants.ENTITY) T entity); /** * <p> * 根据 ID 修改 * </p> * * @param entity 实体对象 */ int updateAllColumnById(@Param(Constants.ENTITY) T entity); /** * <p> * 根据 whereEntity 条件,更新记录 * </p> * * @param entity 实体对象 (set 条件值,不能为 null) * @param updateWrapper 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句) */ int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper); /** * <p> * 根据 ID 查询 * </p> * * @param id 主键ID */ T selectById(Serializable id); /** * <p> * 根据 Wrapper 条件,查询总记录数 * </p> * * @param queryWrapper 实体对象 */ Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); /** * <p> * 根据 entity 条件,查询全部记录 * </p> * * @param queryWrapper 实体对象封装操作类(可以为 null) */ List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); /** * <p> * 根据 Wrapper 条件,查询全部记录 * 注意: 只返回第一个字段的值 * </p> * * @param queryWrapper 实体对象封装操作类(可以为 null) */ List<Object> selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); /** * <p> * 根据 entity 条件,查询全部记录(并翻页) * </p> * * @param page 分页查询条件(可以为 RowBounds.DEFAULT) * @param queryWrapper 实体对象封装操作类(可以为 null) */ IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper); }
package com.genergy.cloud.mybatisplus; import com.baomidou.mybatisplus.core.injector.AbstractMethod; import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector; import com.baomidou.mybatisplus.core.injector.methods.*; import com.baomidou.mybatisplus.extension.injector.methods.additional.InsertBatchSomeColumn; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; /** * <p> * MybatisPlusSql注入器 * </p> * * @author Caratacus */ public class MybatisPlusSqlInjector extends AbstractSqlInjector { @Override public List<AbstractMethod> getMethodList() { return Stream.of( new Insert(), new InsertBatchSomeColumn(t -> true), new Delete(), new DeleteById(), new Update(), new UpdateById(), new UpdateAllColumnById(), new SelectById(), new SelectCount(), new SelectObjs(), new SelectList(), new SelectPage() ).collect(Collectors.toList()); } }
package com.genergy.cloud.mybatisplus.config; import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.genergy.cloud.mybatisplus.CommonMetaObjectHandler; import com.genergy.cloud.mybatisplus.MybatisPlusSqlInjector; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * MybatisPlus 配置 * * @author Caratacus */ @Configuration public class MybatisPlusAutoConfiguration { /** * 分页 * * @return */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } /** * 乐观锁 * * @return */ @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } /** * 自动填充 * * @return */ @Bean public CommonMetaObjectHandler commonMetaObjectHandler() { return new CommonMetaObjectHandler(); } /** * 自定义注入语句 * * @return */ @Bean public MybatisPlusSqlInjector mybatisPlusSqlInjector() { return new MybatisPlusSqlInjector(); } }
注意:
super-mapper-class: com.genergy.cloud.mapper.BaseMapper 官网好像没有找到super-mapper-class配置说明,如果不配置该项会导致明明继承了basemapper 但是里面的方法一直报找不到。原因好像在controller时 调用aop,通过sql注入器寻到方法。
以上是关于mybatis-plus 3.X 配置的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis-Plus中的代码生成器AutoGenerator超详细解析!完整配置!
Mybatis-Plus中的代码生成器AutoGenerator超详细解析!完整配置!
Mybatis-Plus中的代码生成器AutoGenerator超详细解析!完整配置!
Mybatis-Plus中的代码生成器AutoGenerator超详细解析!完整配置!