spring boot项目集成Mybatis-Plus 3.0.5

1.首先引入Mybatis-Plus相关jar包

        <properties>
            <mybatisplus.version>3.0.5</mybatisplus.version>      
        </properties> 

        <!-- mybatisplus与springboot整合 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus</artifactId>
            <version>${mybatisplus.version}</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>${mybatisplus.version}</version>
        </dependency>

2.application.yml文件中添加Mybatis-Plus的配置,根据自己业务来设置,详细请移步官方文档

# ╔══════════════════════mybatis-plus═══════════════════╗
# ║                                                     ║
# ║ https://mp.baomidou.com/config/#checkconfiglocation ║
# ╚═════════════════════════════════════════════════════╝
mybatis-plus:
  # 配置扫描xml
  mapper-locations: classpath:/mybatis/*/*Mapper.xml
  # 实体扫描,多个package用逗号或者分号分隔
  type-aliases-package: com.dawn.rockcandy.modules.*.entity
  # 枚举类 扫描路径,如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
  #  type-enums-package:
  # 启动时是否检查 MyBatis XML 文件的存在,默认不检查。
  #  check-config-location: true
  # 该配置请和 typeAliasesPackage 一起使用,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象 。
  #  type-aliases-super-type: java.lang.Object
  # TypeHandler 扫描路径,如果配置了该属性,SqlSessionFactoryBean 会把该包下面的类注册为对应的 TypeHandler。
  type-handlers-package: com.dawn.rockcandy.common.handler
  # MyBatis-Plus 全局策略配置
  global-config:
    db-config:
# id主键生成规则,可选 id-type: id_worker # 逻辑删除配置(下面2个配置) logic-delete-value: 1 logic-not-delete-value: 0 # 表名、是否使用下划线命名,默认数据库表使用下划线命名 table-underline: true # 表名前缀 # table-prefix: configuration: # 配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId) map-underscore-to-camel-case: true # MyBatis 自动映射时未知列或未知属性处理策略,通过该配置可指定 MyBatis 在自动映射过程中遇到未知列或者未知属性时如何处理 # AutoMappingUnknownColumnBehavior.NONE:不做任何处理 (默认值) # AutoMappingUnknownColumnBehavior.WARNING:以日志的形式打印相关警告信息 # AutoMappingUnknownColumnBehavior.FAILING:当作映射失败处理,并抛出异常和详细信息 auto-mapping-unknown-column-behavior: WARNING # 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段 call-setters-on-nulls: false cache-enabled: true

3.在Application启动类上添加上扫描dao层的注解

@MapperScan("com.dawn.rockcandy.modules.*.dao") //这里是扫描你的dao层包路径

这时候springboot项目就已经集成了mybatis-plus,当然你可以加入一些其他的配置,下面的配置仅供参考

4.添加mybatis-plus的配置文件 MybatisPlusConfig.class

package com.dawn.rockcandy.common.config;

import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * mybatis-plus配置
 *
 * @author tangzedong
 * @since 2019-1-10 15:53:11
 */
@Configuration
@EnableTransactionManagement
public class MybatisPlusConfig {

    /**
     * 逻辑删除
     */
    @Bean
    public ISqlInjector sqlInjector() {
        return new LogicSqlInjector();
    }

    /***
     * plus 的性能优化
     */
    @Bean
    public PerformanceInterceptor performanceInterceptor() {
        PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
        /*<!-- SQL 执行性能分析,开发环境使用,线上不推荐。 maxTime 指的是 sql 最大执行时长 -->*/
        performanceInterceptor.setMaxTime(1000);
        /*<!--SQL是否格式化 默认false-->*/
        performanceInterceptor.setFormat(true);
        return performanceInterceptor;
    }

    /**
     * mybatis-plus分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

}

5.mybatis-plus的自动注入参数 MybatisPlusDataHandler.class

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**
 * @author tangzedong
 * @apiNote mybatis-plus 自动填充处理器
 * @since 2018/12/2 12:41
 */
@Component
public class MybatisPlusDataHandler implements MetaObjectHandler {
    /**
     * 添加元数据参数自动填充
* 需要三个参数(字段名称【对应javabean的属性】,字段默认值【如果类型不一样会报错】,metaObject)
* javabean的属性需要添加注解@TableField(fill = FieldFill.INSERT) */ @Override public void insertFill(MetaObject metaObject) { setFieldValByName("creationTime", new Date(), metaObject); setFieldValByName("delFlag", false, metaObject); } /** * 修改元数据参数自动填充
* javabean的属性需要添加注解@TableField(fill = FieldFill.UPDATE) */ @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("modificationTime", new Date(), metaObject); } }

这里提供一个自定义模板根据数据库生成java代码的工具(基于mybatis-plus3.0.5)

传送门 项目是根据人人开源项目修改来的,可自行拉取,根据自己项目调整模板源码(可以顺手点个星吗?)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值