1、引入maven

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5.  
  6. <dependency>
  7. <groupId>mysql</groupId>
  8. <artifactId>mysql-connector-java</artifactId>
  9. <version>8.0.11</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>com.baomidou</groupId>
  13. <artifactId>mybatis-plus-boot-starter</artifactId>
  14. <version>3.2.0</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>com.baomidou</groupId>
  18. <artifactId>mybatis-plus-generator</artifactId>
  19. <version>3.2.0</version>
  20. </dependency>
  21.  
  22. <dependency>
  23. <groupId>org.apache.velocity</groupId>
  24. <artifactId>velocity-engine-core</artifactId>
  25. <version>2.0</version>
  26. </dependency>
  27.  
  28. <dependency>
  29. <groupId>org.projectlombok</groupId>
  30. <artifactId>lombok</artifactId>
  31. <optional>true</optional>
  32. </dependency>
  33.  
  34. <dependency>
  35. <groupId>com.alibaba</groupId>
  36. <artifactId>druid-spring-boot-starter</artifactId>
  37. <version>1.1.20</version>
  38. </dependency>

application.yml 增加

  1. mybatis-plus:
  2. #扫描mapper文件所在位置
  3. mapper-locations: classpath*:mapper/**/*Mapper.xml
  4. #可以指定实体类所在包路径
  5. typeAliasesPackage: com.rnce.model
  6. global-config:
  7. banner: false
  8. db-config:
  9. # 主键类型 0:数据库ID自增 1.未定义 2.用户输入 3 id_worker 4.uuid 5.id_worker字符串表示
  10. id-type: AUTO
  11. #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
  12. field-strategy: NOT_NULL
  13. # 默认数据库表下划线命名
  14. table-underline: true
  15. # configuration:
  16. # map-underscore-to-camel-case: false
  17. # cache-enabled: true #配置的缓存的全局开关
  18. # lazyLoadingEnabled: true #延时加载的开关
  19. # multipleResultSetsEnabled: true #开启的话,延时加载一个属性时会加载该对象全部属性,否则按需加载属性
  20. # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #打印sql语句,调试用
  21.  
  22. spring:
  23. #DATABASE CONFIG
  24. datasource:
  25. #driver-class-name: com.mysql.jdbc.Driver
  26. #driver-class-name: com.p6spy.engine.spy.P6SpyDriver
  27. driverClassName: com.mysql.cj.jdbc.Driver
  28. username: dsk
  29. password: Hz56
  30. url: jdbc:mysql://106.103:3306/dwk?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=UTC
  31. type: com.alibaba.druid.pool.DruidDataSource #这里是配置druid连接池,以下都是druid的配置信息
  32. druid:
  33. # 初始连接数
  34. initialSize: 5
  35. # 最小连接池数量
  36. minIdle: 10
  37. # 最大连接池数量
  38. maxActive: 20
  39. # 配置获取连接等待超时的时间
  40. maxWait: 60000
  41. # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  42. timeBetweenEvictionRunsMillis: 60000
  43. # 配置一个连接在池中最小生存的时间,单位是毫秒
  44. minEvictableIdleTimeMillis: 300000
  45. # 配置一个连接在池中最大生存的时间,单位是毫秒
  46. maxEvictableIdleTimeMillis: 900000
  47. # 配置检测连接是否有效
  48. testWhileIdle: true
  49. validationQuery: SELECT 1 FROM DUAL
  50. testOnBorrow: false
  51. testOnReturn: false
  52. webStatFilter:
  53. enabled: true
  54. statViewServlet:
  55. enabled: true
  56. # 设置白名单,不填则允许所有访问
  57. allow:
  58. url-pattern: /druid/*
  59. # 控制台管理用户名和密码
  60. login-username:
  61. login-password:
  62. filter:
  63. stat:
  64. enabled: true
  65. # 慢SQL记录
  66. log-slow-sql: true
  67. slow-sql-millis: 1000
  68. merge-sql: true
  69. wall:
  70. config:
  71. multi-statement-allow: true

启动器上增加 要把Mapper接口文件的包扫描进去

代码生成类

CodeGenerator.java

  1. import com.baomidou.mybatisplus.annotation.DbType;
  2. import com.baomidou.mybatisplus.annotation.IdType;
  3. import com.baomidou.mybatisplus.generator.AutoGenerator;
  4. import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
  5. import com.baomidou.mybatisplus.generator.config.GlobalConfig;
  6. import com.baomidou.mybatisplus.generator.config.PackageConfig;
  7. import com.baomidou.mybatisplus.generator.config.StrategyConfig;
  8. import com.baomidou.mybatisplus.generator.config.rules.DateType;
  9. import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
  10.  
  11. public class CodeGenerator {
  12. public static void main(String[] args) {
  13.  
  14. // 1、创建代码生成器
  15. AutoGenerator mpg = new AutoGenerator();
  16.  
  17. // 2、全局配置
  18. GlobalConfig gc = new GlobalConfig();
  19. //获取工作目录
  20. String projectPath = System.getProperty("user.dir");
  21. gc.setOutputDir(projectPath + "/src/main/java");
  22. //作者
  23. gc.setAuthor("yvioo");
  24. //生成后是否打开资源管理器
  25. gc.setOpen(false);
  26. //重新生成时文件是否覆盖
  27. gc.setFileOverride(false);
  28. //去掉Service接口的首字母
  29. gc.setServiceName("%sService");
  30. gc.setIdType(IdType.AUTO); //主键策略
  31. gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
  32. gc.setSwagger2(false);//开启Swagger2模式
  33.  
  34. mpg.setGlobalConfig(gc);
  35.  
  36. // 3、数据源配置
  37. DataSourceConfig dsc = new DataSourceConfig();
  38. dsc.setUrl("jdbc:mysql://1003:3306/mazc?serverTimezone=GMT%2B8");
  39. dsc.setDriverName("com.mysql.cj.jdbc.Driver");
  40. dsc.setUsername("mc");
  41. dsc.setPassword("Hz56");
  42. dsc.setDbType(DbType.MYSQL);
  43. mpg.setDataSource(dsc);
  44.  
  45. // 4、包配置
  46. PackageConfig pc = new PackageConfig();
  47. //模块名
  48. pc.setModuleName(null);
  49. //指定生成的根目录
  50. pc.setParent("com.test.cms.mybatisplus");
  51.  
  52. //以下设置的包名要在上面的目录下
  53.  
  54. //控制器的包名
  55. pc.setController("controller");
  56. //实体类的包名
  57. pc.setEntity("entity");
  58.  
  59. pc.setService("service");
  60. //实现类的包名
  61. pc.setServiceImpl("service.impl");
  62. //映射文件的包名
  63. pc.setMapper("mapper");
  64. mpg.setPackageInfo(pc);
  65.  
  66. // 5、策略配置
  67. StrategyConfig strategy = new StrategyConfig();
  68.  
  69. //设置要生成的代码表名
  70. strategy.setInclude("mrevice");
  71.  
  72. //数据库表映射到实体的命名策略
  73. strategy.setNaming(NamingStrategy.underline_to_camel);
  74.  
  75. //生成实体时去掉表前缀
  76. strategy.setTablePrefix(pc.getModuleName() + "_");
  77.  
  78. //数据库表字段映射到实体的命名策略
  79. strategy.setColumnNaming(NamingStrategy.underline_to_camel);
  80. // lombok 模型 @Accessors(chain = true) setter链式操作
  81. strategy.setEntityLombokModel(true);
  82.  
  83. //restful api风格控制器
  84. strategy.setRestControllerStyle(true);
  85.  
  86. //url中驼峰转连字符
  87. strategy.setControllerMappingHyphenStyle(true);
  88.  
  89. mpg.setStrategy(strategy);
  90.  
  91. // 6、执行
  92. mpg.execute();
  93. }
  94. }

SpringBoot整合mybatis-plus并实现代码自动生成的更多相关文章

  1. SpringBoot 整合 mybatis 开启驼峰命名规则自动转换

    引言 在使用 MyBatis 进行实际项目开发时,如果数据库表字段名与Java 实体类属性名不一致,映射时则需要编写表字段列表与 Java 实体类属性的映射关系,即resultMap,如下: < ...

  2. springboot整合mybatis通用Mapper

    参考: https://blog.csdn.net/x18707731829/article/details/82814095 https://www.jianshu.com/p/6d2103451d ...

  3. Springboot整合Mybatis实现级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  4. springboot学习随笔(四):Springboot整合mybatis(含generator自动生成代码)

    这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部 ...

  5. SpringBoot整合mybatis——配置mybatis驼峰命名规则自动转换

    一.简述 mybatis驼峰式命名规则自动转换: 使用前提:数据库表设计按照规范“字段名中各单词使用下划线"_"划分”: 使用好处:省去mapper.xml文件中繁琐编写表字段列表 ...

  6. springboot整合mybatis,redis,代码(二)

    一 说明: springboot整合mybatis,redis,代码(一) 这个开发代码的复制粘贴,可以让一些初学者直接拿过去使用,且没有什么bug 二 对上篇的说明 可以查看上图中文件: 整个工程包 ...

  7. springboot整合mybatis,利用mybatis-genetor自动生成文件

    springboot整合mybatis,利用mybatis-genetor自动生成文件 项目结构: xx 实现思路: 1.添加依赖 <?xml version="1.0" e ...

  8. SpringBoot整合Mybatis之项目结构、数据源

    已经有好些日子没有总结了,不是变懒了,而是我一直在奋力学习springboot的路上,现在也算是完成了第一阶段的学习,今天给各位总结总结. 之前在网上找过不少关于springboot的教程,都是一些比 ...

  9. SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)

    1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...

  10. SpringBoot整合Mybatis完整详细版

    记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + ...

随机推荐

  1. 洛谷 P7620 - CF1431J Zero-XOR Array(状压 dp)

    洛谷题面传送门 首先显然题目等价于求有多少个长度 \(n-1\) 的序列 \(b\) 满足 \(a_i\le b_i\le a_{i+1}\),满足 \(b_1\oplus b_2\oplus\cdo ...

  2. Peaks Gym 100365H

    Peaks ( Gym 100365H ) 这题nk做法还挺正常的..后面那个循环就很恶心了 考虑 dp[i][j] 表示长度为i的排列,恰好有k个峰的方案数量. 然后转移就是把 i 插入 i-1 的 ...

  3. CF840D Destiny

    题目传送门. 题意简述:多次询问求出一个区间最小的出现次数严格大于 \(\frac{r-l+1}{k}\ (2\leq k\leq 5)\) 的最小的数.无解输出 \(-1\). 注意到这个 \(k\ ...

  4. python8 标准模块和第三方模块

  5. C语言计算fastq文件GC含量2

    改进了一下,利用zlib可以读取gz格式的压缩文件,也可以直接计算非压缩格式 #include <stdio.h> #include <stdlib.h> #include & ...

  6. Python基础之数字类型内置方法

    目录 1. 整型内置方法(int) 2. 浮点型内置方法 3. 常用操作 1. 整型内置方法(int) 用途:年龄,号码,等级等 定义: age = 18 常用操作 # 算数运算.比较运算 age = ...

  7. dart系列之:HTML的专属领域,除了javascript之外,dart也可以

    目录 简介 DOM操作 CSS操作 处理事件 总结 简介 虽然dart可以同时用作客户端和服务器端,但是基本上dart还是用做flutter开发的基本语言而使用的.除了andorid和ios之外,we ...

  8. HDFS04 HDFS的读写流程

    HDFS的读写流程(面试重点) 目录 HDFS的读写流程(面试重点) HDFS写数据流程 网络拓扑-节点距离计算 机架感知(副本存储节点的选择) HDFS的读数据流程 HDFS写数据流程 客服端把D: ...

  9. aboard, abolish

    aboard board做动词有上车/船/飞机的意思,boarding就是正在上.board做名词有板的意思,车厢地板的板. a是个词根,有三种意思:1. 以某种状态或方式,如: ablaze, af ...

  10. addict, address, adequate

    addict Addiction is a biopsychosocial disorder characterized by repeated use of drugs, or repetitive ...