Springboot集成MybatisPlus

MybatisPlus使用

  1. 导入maven依赖
     <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
     <dependency>
         <groupId>com.baomidou</groupId>
         <artifactId>mybatis-plus-boot-starter</artifactId>
         <version>3.3.2</version>
     </dependency>
    
  2. 创建Mapper接口和Mapper.xml映射文件,继承BaseMapper<ClassName>
    @Repository    //表示持久层
    public interface SysUserMapper extends BaseMapper<SysUser> 
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.liuy.employeesys.mapper.SysUserMapper">
    </mapper>
    
  3. 在MybatisPlusConfig配置类上添加@MapperScan(“com.liuy”)扫描Mapper
    @Configuration
    @MapperScan("com.liuy.employeesys.mapper")
    public class MybatisPlusConfig {
    
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
            interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
            return interceptor;
        }
    }
    
    4.项目配置文件中配置日志输出
    #Mybatis-plus配置
    mybatis-plus:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    

CRUD

  1. 条件查询

     //设置查询条件
     QueryWrapper<SysUser> wrapper=new QueryWrapper<>();
       /**
         * eq  等于
         * ne  不等于
         * gt  大于
         * ge  大于等于
         * lt  小于
         * le  小于等于
         * between  between a and b
         * notBetween  Not between a and b
         * like  like '%值%'
         * notLike  not like '%值%'
         * likeLeft  like '%值'
         * likeRight like '值%'
         */
     wrapper.eq("username",userReq.getUsername());
     SysUser sysUser = sysUserMapper.selectOne(wrapper);
    
  2. insert–自动生成主键ID
    插入数据时,插入对象的ID为空时,自动填充

    不做指定Id生成,默认IdType.NONE,为用户输入Id

    指定Id生成算法:@TableId(type=IdType.AUTO)数据实现自增

    雪花算法生成long型64位Id号: 1bit符号位 + 41bit时间戳 + 10bit机器Id + 12bit数据Id

    /**
     * 分配ID (主键类型为number或string),
     * 默认实现类 {DefaultIdentifierGenerator}(雪花算法)
     */
    ASSIGN_ID(3),
    /**
     * 分配UUID (主键类型为 string)
     * 默认实现类 {DefaultIdentifierGenerator}(UUID.replace("-",""))
     */
    ASSIGN_UUID(4),
    
  3. update自动填充创建时间,修改时间 create_time,update_time

    @TableField(fill=FieldFill.Insert) 插入时填充create_time.
    @TableField(fill=FieldFill.Insert_update) 插入更新时填充create_time,update_time.

    实现MetaObjectHandler接口—>元对象字段填充控制器抽象类
    实现公共字段自动写入,在作为组件装载到Bean@Component.

    乐观锁:执行任务中全程不加锁,当发生问题,更新值再次测试
    悲观锁:执行任务全程加锁,再操作
    乐观锁实现方式:取出记录,获取当前version;更新时带上version;执行更新时验证这个是否是老的version;如果不是就更新失败。

    添加version字段默认1;
    实体类注解@version
    配置类注入Bean:MybatisPlusInterceptor,add(OptimisticLockerInnerInterceptor)

  4. delete 逻辑删除,deleted默认0 -----删除---->1

    实体类deleted字段 注解@TableLogic
    逻辑删除Bean: LogicDeleteByIdWithFill
    配置文件中配置逻辑删除默认值

    #Mybatis-plus配置
    mybatis-plus:
      global-config:
        db-config:
          logic-delete-value: 0
          logic-not-delete-value: 1
    

分页

  • 分页拦截器PaginationInnerInterceptor
    默认对 left join 进行优化,虽然能优化count,但是加上分页的话如果1对多本身结果条数就是不正确的

    配置类中注入Bean:PaginationInnerInterceptor
    Page<User>(page,size);

性能分析插件

输出每条SQL执行时间,只在开发环境下有效
IllegalSQLInnerInterceptor拦截SQL,提出优化建议

spring.profile.active=dev

### 回答1: 在SpringBoot集成MybatisPlus需要完成以下步骤: 1. 添加依赖:在项目的pom.xml文件中添加MybatisPlus和Mybatis的依赖。 2. 配置数据源:在application.properties或application.yml文件中配置数据库连接信息和MybatisPlus的相关配置信息,比如Mapper映射文件的路径等。 3. 创建Mapper接口:定义一个Mapper接口,继承MybatisPlus提供的BaseMapper接口,并添加相应的注解。 4. 创建实体类:创建与数据库表对应的实体类,并使用注解来映射实体类属性和数据库表字段。 5. 编写业务代码:在Service层中编写相应的业务代码,包括调用Mapper接口中的方法来完成对数据库的操作。 6. 测试:编写测试代码来测试上述功能是否正常运行。 以上就是SpringBoot集成MybatisPlus的基本步骤,希望能对您有所帮助。 ### 回答2: Spring Boot集成MyBatis Plus是一种常见的组合方式,可以快速、简单地进行Java开发。下面我会简单介绍一下集成的步骤和优势。 首先,为了集成Spring Boot和MyBatis Plus,我们需要在pom.xml中添加相关依赖。这些依赖将负责将 MyBatis Plus 和 Spring Boot 连接起来。然后,我们需要在配置文件中配置数据库连接信息和MyBatis Plus的一些参数。 接下来,我们可以开始编写我们的实体类和Mapper接口。MyBatis Plus提供了很多方便的注解和接口,可以省去我们编写大量的CRUD操作代码。例如,使用@TableName注解来指定表名,使用@Mapper注解来标识Mapper接口等。 然后,我们可以在Service类中使用MyBatis Plus提供的方法来进行数据操作。例如,使用getById()方法来根据主键查询数据,使用insert()方法来插入数据等。MyBatis Plus还提供了更多的方法和条件查询的支持,可以根据具体的业务需求选择合适的方法来使用。 最后,可以使用Spring Boot提供的Web框架来暴露我们的接口,并进行测试和使用。可以使用Postman等工具来发送HTTP请求,验证我们的接口是否正常工作。 通过集成Spring Boot和MyBatis Plus,我们可以大大提高开发效率和代码质量。MyBatis Plus提供了许多便捷的功能,可以简化我们的开发过程,减少编码工作量。而Spring Boot则提供了一种快速、简单的开发框架,可以帮助我们更好地构建和管理我们的项目。 总结一下,Spring Boot集成MyBatis Plus是一种常用且优秀的开发方式。它可以帮助我们快速搭建项目、简化开发流程,同时提供了很多便捷的功能和工具,可以提高我们的开发效率和代码质量。希望这些信息对你有所帮助! ### 回答3: Spring Boot为我们提供了很多便利,可以简化我们的开发工作。MyBatis Plus是一个优秀的ORM框架,能够帮助我们更加轻松地操作数据库。 要在Spring Boot项目中集成MyBatis Plus,首先需要在pom.xml文件中添加相关的依赖。可以使用Maven或Gradle管理项目依赖,建议使用Maven。添加MyBatis Plus的依赖后,可以在项目中使用MyBatis Plus提供的各种功能,如分页查询、条件查询、条件更新等。 在Spring Boot中配置MyBatis Plus也非常简单。只需要在application.properties或application.yml文件中添加相应的配置项即可。配置项包括数据源信息、MyBatis Plus的配置信息等。在配置数据源信息时,可以使用Spring Boot提供的自动配置功能,根据配置文件中的相关配置自动创建数据源并注入到项目中。在配置MyBatis Plus信息时,可以自定义表名前缀、表名生成策略等。 在编写代码时,可以直接使用MyBatis Plus提供的各种查询方法,也可以使用自定义的SQL语句进行操作。MyBatis Plus还提供了实体类生成器工具,可以根据数据库表结构自动生成实体类,减少手动编写实体类的工作量。 总的来说,Spring Boot集成MyBatis Plus非常简单且方便。通过集成MyBatis Plus,我们可以更加轻松地操作数据库,提高开发效率。同时,MyBatis Plus在性能优化上也做了很多工作,对于大型系统的开发也有很好的支持。希望以上回答能够对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值