mybatis-plus 3.X 配置
阿新 • • 發佈:2019-03-17
conf gin 說明 get 註意 banner bool and 封裝
官網配置參數說明地址: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 配置