0


SpringBoot 整合MyBatisPlus

简介

MyBatis Plus(也称为MyBatis+)是MyBatis框架的增强版本,MyBatis是一种流行的轻量级Java持久化框架。MyBatis Plus提供了额外的功能,并简化了对MyBatis的使用,使得在Java应用程序中使用数据库更加便捷。

官方文档:https://baomidou.com/
Maven仓库地址:https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter

在这里插入图片描述

整合步骤

1. 导入 MyBatisPlus 所需要的依赖
<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.5</version><relativePath/><!-- lookup parent from repository --></parent><groupId>com.liming</groupId><artifactId>mybatis-plus</artifactId><version>0.0.1-SNAPSHOT</version><name>mybatis-plus</name><description>springboot整合mp</description><properties><java.version>1.8</java.version><log4j.version>1.2.17</log4j.version><druid.version>1.2.8</druid.version><mybatisplus.version>3.4.2</mybatisplus.version></properties><dependencies><!--web启动依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--mybatis plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatisplus.version}</version></dependency><!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>${druid.version}</version></dependency><!--log4j--><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!--热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><!--单元测试--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins></build></project>
2.配置数据库连接信息
server:port:9000#####数据源配置#####spring:datasource:username: root
    password:123456#serverTimezone=UTC解决时区的报错url: jdbc:mysql://localhost:3306/db_authority_system?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    #druid 数据源专有配置initialSize:5#连接池的初始大小minIdle:5#连接池中最小空闲连接数量maxActive:20#连接池中最大活跃连接数量maxWait:60000#获取连接的最大等待时间timeBetweenEvictionRunsMillis:60000#定期检查连接池中空闲连接的间隔时间minEvictableIdleTimeMillis:300000#连接池中连接的最小空闲时间validationQuery: SELECT 1 FROM DUAL #校验连接是否有效的SQL查询语句#连接返回时是否进行测试testWhileIdle:truetestOnBorrow:falsetestOnReturn:false#是否缓存PreparedStatementpoolPreparedStatements:truefilters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize:20#每个连接上缓存PreparedStatement的最大数量。useGlobalDataSourceStat:true#是否开启全局监控统计功能connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
#####mybatisplus配置#####mybatis-plus:#加载映射文件mapper-locations: classpath:mapper/*.xml#设置别名type-aliases-package: com.liming.entity
  #开启驼峰命名configuration:map-underscore-to-camel-case:true# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#####配置日志#####logging:config: classpath:logback.xml
  #设置日志级别的节点level:com:liming: debug
3.MybatisX插件快速生成代码

首先使用IDEA连接mysql
在这里插入图片描述
找到表右键,选择插件的逆向工程选项
在这里插入图片描述
编写逆向工程配置信息
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4.MybatisX插件生成代码的模板配置
  • 按照指定目录找到插件模板配置目录 Scratches and Consoles -> Extensions -> MybatisX
  • 这里会提供默认模板: 例如在 1.4.13 提供了模板: default-all,default,mybatis-plus2,mybatis-plus3
  • 如果想重置默认模板, 可以右键点击 MybatisX 目录,选择 Restore Default Extensions 选项在这里插入图片描述自定义模板内容
    名称含义tableClass.fullClassName类的全称(包括包名)tableClass.shortClassName类的简称tableClass.tableName表名tableClass.pkFields表的所有主键字段tableClass.allFields表的所有字段tableClass.baseFields排除主键和 blob 的所有字段tableClass.baseBlobFields排除主键的所有字段tableClass.remark表注释
    更多信息大家可以查看官网获取
4.generator批量生成代码

pom

<!--代码生成--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><!--freemarker模板--><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency>

编写核心模板

packagecom.liming.utils;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.generator.AutoGenerator;importcom.baomidou.mybatisplus.generator.config.DataSourceConfig;importcom.baomidou.mybatisplus.generator.config.GlobalConfig;importcom.baomidou.mybatisplus.generator.config.PackageConfig;importcom.baomidou.mybatisplus.generator.config.StrategyConfig;importcom.baomidou.mybatisplus.generator.config.rules.NamingStrategy;importcom.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;publicclassGeneratorCode{privatestaticString author ="liming";//作者名称privatestaticString outputDir ="D:\\";//生成的位置privatestaticString driver ="com.mysql.cj.jdbc.Driver";//驱动,注意版本//连接路径,注意修改数据库名称privatestaticString url ="jdbc:mysql://localhost:3306/db_authority_system?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";privatestaticString username ="root";//数据库用户名privatestaticString password ="123456";//数据库密码privatestaticString tablePrefix ="sys_";//数据库表的前缀,如t_userprivatestaticString[] tables ={"sys_user","sys_permission","sys_department"};//生成的表privatestaticString parentPackage ="com.liming";//顶级包结构privatestaticString mapper ="mapper";//数据访问层包名称privatestaticString service ="service";//业务逻辑层包名称privatestaticString entity ="entity";//实体层包名称privatestaticString controller ="controller";//控制器层包名称privatestaticString mapperxml ="mapper";//mapper映射文件包名称publicstaticvoidmain(String[] args){//1. 全局配置GlobalConfig config =newGlobalConfig();
        config.setAuthor(author)// 作者.setOutputDir(outputDir)// 生成路径.setFileOverride(true)// 文件覆盖.setIdType(IdType.AUTO)// 主键策略.setServiceName("%sService")// 设置生成的service接口的名字的首字母是否为I,加%s则不生成I.setBaseResultMap(true)//映射文件中是否生成ResultMap配置.setBaseColumnList(true);//生成通用sql字段//2. 数据源配置DataSourceConfig dsConfig  =newDataSourceConfig();
        dsConfig.setDbType(DbType.MYSQL)// 设置数据库类型.setDriverName(driver)//设置驱动.setUrl(url)//设置连接路径.setUsername(username)//设置用户名.setPassword(password);//设置密码//3. 策略配置StrategyConfig stConfig =newStrategyConfig();
        stConfig.setCapitalMode(true)//全局大写命名.setNaming(NamingStrategy.underline_to_camel)// 数据库表映射到实体的命名策略.setTablePrefix(tablePrefix)//表前缀.setInclude(tables)// 生成的表.setEntityLombokModel(true);//支持Lombok//4. 包名策略配置PackageConfig pkConfig =newPackageConfig();
        pkConfig.setParent(parentPackage)//顶级包结构.setMapper(mapper)//数据访问层.setService(service)//业务逻辑层.setController(controller)//控制器.setEntity(entity)//实体类.setXml(mapperxml);//mapper映射文件//5. 整合配置AutoGenerator ag =newAutoGenerator();
        ag.setGlobalConfig(config).setDataSource(dsConfig).setStrategy(stConfig).setPackageInfo(pkConfig).setTemplateEngine(newFreemarkerTemplateEngine());// 使用Freemarker引擎模板//6. 执行
        ag.execute();}}

运行

在这里插入图片描述

可以看见我们所需的代码已经生成,将文件拷贝到项目中即可

特别注意

  • 将实体类中属性数据类型为LocalDateLocalDateTime修改成java.util.Date类型
标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/weixin_46370595/article/details/132737316
版权归原作者 小钟不想敲代码 所有, 如有侵权,请联系我们删除。

“SpringBoot 整合MyBatisPlus”的评论:

还没有评论