java - Mybatis-plus

配置文件

# MyBatis Plus配置
mybatis-plus:
  # entity 扫描
  typeAliasesPackage: com.ruoyi.**.domain
  # mapper.xml 扫描
  mapperLocations: classpath*:mapper/**/*Mapper.xml
  # 加载全局的配置文件
  # configLocation: classpath:mybatis/mybatis-config.xml
  # 行为配置
  configuration:
    # 自动驼峰命名规则(camel case)映射
    # 如果您的数据库命名符合规则无需使用 @TableField 注解指定数据库字段名
    mapUnderscoreToCamelCase: true
    # 默认枚举处理类,如果配置了该属性,枚举将统一使用指定处理器进行处理
    # org.apache.ibatis.type.EnumTypeHandler : 存储枚举的名称
    # org.apache.ibatis.type.EnumOrdinalTypeHandler : 存储枚举的索引
    # com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler : 枚举类需要实现IEnum接口或字段标记@EnumValue注解.
    defaultEnumTypeHandler: org.apache.ibatis.type.EnumTypeHandler
    # 当设置为 true 的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。需要和 lazyLoadingEnabled 一起使用。
    aggressiveLazyLoading: true
    # MyBatis 自动映射策略
    # NONE:不启用自动映射
    # PARTIAL:只对非嵌套的 resultMap 进行自动映射
    # FULL:对所有的 resultMap 都进行自动映射
    autoMappingBehavior: PARTIAL
    # MyBatis 自动映射时未知列或未知属性处理策
    # NONE:不做任何处理 (默认值)
    # WARNING:以日志的形式打印相关警告信息
    # FAILING:当作映射失败处理,并抛出异常和详细信息
    autoMappingUnknownColumnBehavior: NONE
    # Mybatis一级缓存,默认为 SESSION
    # SESSION session级别缓存,同一个session相同查询语句不会再次查询数据库
    # STATEMENT 关闭一级缓存
    localCacheScope: SESSION
    # 开启Mybatis二级缓存,默认为 true
    cacheEnabled: true
    # 关闭 sql 日志【注释即可打印日志】
    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl

自动填充字段

  1. 在需要自动填充的字段上添加注解 @TableField(fill = FieldFill.INSERT_UPDATE)
  2. 只在调用 mybatis-plus 的 api 时生效 ( 手搓 sql 不生效 )
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.SecurityUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        SysUser user = SecurityUtils.getLoginUser().getUser();

	// 字段不存在则不填充
        this.setFieldValByName("createdBy", user.getUserId(), metaObject);
        this.setFieldValByName("createBy", user.getUserId(), metaObject);
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        SysUser user = SecurityUtils.getLoginUser().getUser();

	// 字段不存在则不填充
        this.setFieldValByName("updatedBy", user.getUserId(), metaObject);
        this.setFieldValByName("updateBy", user.getUserId(), metaObject);
    }

}

与 page-helper 发生包冲突

<!-- mybatis-plus -->
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>${mybatis-plus-boot-start.version}</version>
</dependency>

<!-- pagehelper 分页插件 -->
<!-- 排除 mybatis 依赖 -->
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>${pagehelper.boot.version}</version>
  <exclusions>
    <exclusion>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    </exclusion>
  </exclusions>
</dependency>

与 mybatis 发生冲突

  • 项目里不能同时有 mybatis 和 mybatis-plus, 有的话需要重写一个啥啥啥的, 但是忘了, 所以就酱吧.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值