Springboot整合Mybatis generator

  • 1. 新建Springboot工程
    • step 1
    • step 2
    • step 3
  • 2.引入Mybatis generator插件
  • 3.编写Mybatis generator的配置文件
  • 4.可能会出现的问题

1. 新建Springboot工程

step 1

step 2

step 3


红框中两项必选,最后生成工程

2.引入Mybatis generator插件

在pom文件的插件中,引入如下内容:

<plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.7</version><configuration><!-- 在控制台打印执行日志 --><verbose>true</verbose><!-- 重复生成时会覆盖之前的文件--><overwrite>true</overwrite><configurationFile>src/main/resources/generatorConfig.xml</configurationFile></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency></dependencies>
</plugin>

刷新下项目状态,可以在侧边栏的maven中看到此插件:

3.编写Mybatis generator的配置文件

在src/java/resources目录下,创建一个generatorConfigure.xml文件,文件内容可以参考官网编写:http://www.mybatis.org/generator/

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><!-- context 是逆向工程的主要配置信息 --><!-- id:起个名字 --><!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 --><!-- 这里targetRuntime使用MyBatis3的选项时,是生成带有条件查询的mapper文件,比较齐全,工程中一般使用这个选项,其他选项参考官方网站可以进行选择配置 --><context id="default" targetRuntime="MyBatis3"><!-- 这个配置是1.3.7版本之后才有的,用于生成mapper.xml时覆盖原文件 --><plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" /><!--optional,指在创建class时,对注释进行控制--><commentGenerator><property name="suppressDate" value="true"/><!-- 是否去除自动生成的注释 true:是 : false:否 --><property name="suppressAllComments" value="true"/></commentGenerator><!--jdbc的数据库连接 wg_insert 为数据库名字--><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/xxx?useUnicode=true&amp;characeterEncoding=utf-8&amp;serverTimezone=UTC"userId="xxx"password="xxx"></jdbcConnection><!--非必须,类型处理器,在数据库类型和java类型之间的转换控制--><javaTypeResolver><!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 --><!-- 不是 double 和 long 类型 --><!-- 使用常用的基本类型代替 sql 包下的引用类型 --><property name="forceBigDecimals" value="false"/></javaTypeResolver><!-- targetPackage:生成的实体类所在的包 --><!-- targetProject:生成的实体类所在的硬盘位置 --><javaModelGenerator targetPackage="实体类所在包"targetProject="src/main/java"><!-- 是否允许子包 --><property name="enableSubPackages" value="false"/><!-- 是否对modal添加构造函数 --><property name="constructorBased" value="false"/><!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 --><property name="trimStrings" value="true"/><!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 --><property name="immutable" value="false"/></javaModelGenerator><!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 --><sqlMapGenerator targetPackage="mapper.xml所在路径"targetProject="src/main/resources"><!-- 针对数据库的一个配置,是否把 schema 作为字包名 --><property name="enableSubPackages" value="false"/></sqlMapGenerator><!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 --><javaClientGenerator type="XMLMAPPER"targetPackage="mapper接口所在包" targetProject="src/main/java"><!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 --><property name="enableSubPackages" value="false"/></javaClientGenerator><!-- tableName是数据库中的表名,domainObjectName是生成的JAVA模型名,要生成更多的表就在下面继续加table标签 --><table tableName="数据库中的表名" domainObjectName="映射的实体类名"></table></context>
</generatorConfiguration>

编写完配置文件后,双击插件进行代码生成:

出现如下所示的提示信息后表示代码生成成功:

接下来就可以愉快的写增删改查了!!

4.可能会出现的问题

  • java.lang.IllegalArgumentException: Result Maps collection already contains value for com.XXX.BaseResultMap
    遇到上述问题多半是mapper文件生成的时候,由于追加写入的问题导致的,我当时也查了好久,最后玄学地解决了= =,mybatis generator插件版本换成1.3.7,在配置文件中加入下面这句应该就可以解决了,另外保险起见,重新生成mapper文件的时候一定记得把要生成代码的包下的所有代码全部删除重新生成,这样大概率可以完美解决这种问题:

    <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />
    
  • mapper文件没有扫描到
    记得在程序主入口出添加@MapperScan注解去扫描你的dao层接口

Springboot整合Mybatis generator相关推荐

  1. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  2. SpringBoot整合mybatis进行快速开发

    SpringBoot整合mybatis进行数据库操作 1.环境的搭建 pom.xml <!--核心模块,包括自动配置支持.日志和YAML --> <dependencies>& ...

  3. spingBoot整合mybatis+generator+pageHelper

    spingBoot整合mybatis+generator+pageHelper 环境/版本一览: 开发工具:Intellij IDEA 2018.1.4 springboot: 2.0.4.RELEA ...

  4. springboot整合mybatis

    3.springboot整合mybatis 首先新建一个项目,勾选上我们需要的 1.springboot配置数据库连接池druid druid学习地址 https://github.com/aliba ...

  5. Springboot整合Mybatis Plus

    Springboot整合Mybatis Plus maven引入Mybatis Plus 编写配置文件 编写MybatisPlusConfig 编写代码生成器 运行代码生成器即可 maven引入Myb ...

  6. Springboot整合mybatis plus生成代码

    一.Springboot整合mybatis plus生成代码 1.介绍 1.1.前言 从零开始搭建一个项目骨架,最好选择合适熟悉的技术,并且在未来易拓展,适合微服务化体系等.所以一般以Springbo ...

  7. mybatis plugins_[MyBatis] SpringBoot 整合Mybatis

    现在基本上搭建一个简单的工程都是三剑客 springboot+mybatis+redis 之前整合Mybatis 都是按照SSM来,所以,这一次带来SpringBoot+MyBatis 的快速整合 p ...

  8. SpringBoot整合Mybatis超详细流程

    SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...

  9. SpringBoot整合Mybatis(高级)

    SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...

最新文章

  1. Word文档如何自动生成文献摘要?
  2. menu.php,menu.php
  3. linux中执行jmx脚本,在linux服务器下JMeter如何执行jmx性能脚本
  4. 方法变量与方法表达式
  5. nginx哪个版本性能好_nginx性能为什么好
  6. hive创建分区表 指定分隔符_HIVE 对于分区表的操作
  7. 检测系列--RCNN系列
  8. 怎样使用Pycharm(Python工具)新建项目及创建Python文件
  9. ROW_NUMBER (Transact-SQL)
  10. Python之编写函数
  11. 圆弧构型机器人轮直径校准
  12. 关于单细胞批次矫正那些事(二) KBET 用于单细胞批次矫正结果的评估
  13. 《21天学通Java(第6版)》—— 1.10 练习
  14. 50本财富书籍进行收藏
  15. uni-app 使用蓝牙打印机ESC/POS指令基础方法
  16. 基于Matlab的暗通道先验、Retinex去雾图像增强研究
  17. uniapp 空格怎么打?
  18. 【Arduino学习笔记】系列1 - 定时器配置
  19. pytorch Bus error (core dumped)
  20. 冒充云销售的懒虫和毒虫们

热门文章

  1. Tomcat服务器集群搭建
  2. C语言多行字符串输入问题
  3. 水位尺读数识别 python_一种基于视频的水尺读数检测方法与流程
  4. 设计模式(3)——抽象工厂模式
  5. android apk瘦身方法
  6. 【腾讯TMQ】30分钟轻松搞定代码瘦身
  7. 如何让pbootcms模板自动生成当前页面二维码-教程
  8. redis-09-哨兵模式
  9. PL和PS端数据交互方式
  10. Html页面与页面间的交互