在pom.xml增加以下依赖
<!-- 以下这些可以新建项目的时候依赖,没有引入版本号是因为parent节点可以控制版本 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 以上这些可以新建项目的时候依赖 -->
<!-- Mybatis 代码生成 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
<!-- 接下来引入生成代码插件 -->
<build>
<!-- plugins 存放插件依赖 -->
<plugins>
<!-- 下面这个插件是用来运行SpringBoot的,有两种方式运行SpringBoot,一种是直接运行main方法,一种就是通过插件来运行
一旦需要访问资源的时候就要使用插件来运行,否则无法访问到资源 -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 使用Mybatis generator生成entity类、mapper文件以及dao类 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<executions>
<execution>
<id>Generate Mybatis Artifacts</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- generator 配置文件的位置 -->
<configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
在pom中需要修改的只是generator配置文件的位置
配置application.properties
# JDBC配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url = jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF8&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
修改为你的数据库及用户名和密码
注意:暂时生成插件不支持driver为com.mysql.cj.jdbc.Driver,可以生成之后把driver再改回来
配置generatorConfig.xml
注释详细版本
如果觉得注释太多太繁重可以去看下面那个配置,下面那个去掉大部分详细的注释,只留下简短易读的注释,但元素与属性的完整性没有减少
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<!--MyBatis Generator 简称MBG-->
<!-- 根节点 没有属性 有三个子元素:
-子元素 >> 1.<properties> (0个或者1个):用于指定一个需要在配置中解析使用的外部属性文件
- 2.<classPathEntry> (0个或者多个):最常见的用法是通过这个属性指定驱动的路径
- 3.<context>(1个或者多个):用于指定生成一组对象的环境。例如指定要连接的数据库,要生成对象的类型和要处理的数据库中的表。运行
- MyBatis Generator的时候还可以指定要运行的<context>
-->
<generatorConfiguration>
<!--properties 引入属性文件,引入后可以在配置中使用 ${property}这种形式的引用属性文件中的属性值-->
<!--属性 >> 1.resource:用于指定classpath下的属性文件的路径,即相对路径(com.example.cxp.XXX.xxx)
- 2.url:用于指定系统上的特定路径,即绝对路径(file:///C:/Users/CXP/XXX.xxx)
- 如果使用了mybatis-generator-maven-plugin,那么在pom.xml中定义的properties可以直接在generatorConfig.xml中使用
-->
<properties resource="./application.properties"/>
<!--指定mysql驱动-->
<!--classPathEntry只在下面这两种情况下才有效:
-1.当加载JDBC驱动连接数据库时
-2.当加载根类中的JavaModelGenerator检查重写的方法时
-如果你需要加载其他用途的jar包,classPathEntry起不到作用,不能这么写,解决的办法就是将你用的jar包添加到类路径中,在Eclipse等IDE中运行
的时候添加jar包比较容易。当从命令行执行的时候,需要用java -cp xx.jar,xx2.jar xxxMainClass这种方式,在-cp后面指定来使用(注意-jar会
导致-cp无效)
-->
<!--属性 >> location:指明加载jar/zip包的全路径-->
<classPathEntry location="C:\Program Files\MySQL\mysql-connector-java-5.1.46-bin.jar"/>
<!--F:\Maven\repository\mysql\mysql-connector-java\8.0.15\mysql-connector-java-8.0.15.jar-->
<!-- 必须指定一组生成对象的环境 -->
<!--子元素 >> 1.<property> (0个或多个):用于指定许多其他元素的属性。支持property元素的每个元素的文档页面列出了有效的不同值。此元素还可
- 用于将属性传递给您实现的任何自定义代码生成器
- 2.<plugin> (0个或多个):用来定义一个插件。插件用于扩展或修改通过MyBatis Generator (MBG)代码生成器生成的代码,将按配置中列出
- 的顺序调用插件。
- 3.<commentGenerator> (0个或1个):用于定义Comment Generator的属性。Comment Generator用于为MyBatis Generator(MBG)
- 生成的各种元素生成注释(Java字段,Java方法,XML元素等).默认的Comment Generator将JavaDoc注释添加到所有生成的Java元
- 素,以在Eclipse插件中启用Java合并功能。 此外,还会为每个生成的XML元素添加注释。 注释的目的还在于告知用户元素是生成的
- 并且可以再生(即:它们不应被更改),默认实现是org.mybatis.generator.internal.DefaultCommentGenerator。 如果您只
- 想修改某些行为,则默认实现是为可扩展性而设计的。
- 4.<connectionFactory>:用于指定连接工厂,以获取内省表所需的数据库连接。 MyBatis Generator使用JDBC的DatabaseMetaData类来
- 发现您在配置中指定的表的属性。 每个<context>元素都需要一个<connectionFactory>或<jdbcConnection>元素。
- 5.<jdbcConnection> (1个):用于指定内省表所需的数据库连接的属性。 MyBatis Generator使用JDBC的DatabaseMetaData类来发现您
- 在配置中指定的表的属性。 每个<context>元素都需要一个<connectionFactory>或<jdbcConnection>元素。
- 6.<javaTypeResolver> (0个或1个):用来指定JDBC类型和Java类型如何转换
- 7.<javaModelGenerator> (1个):用来控制生成的实体类,根据<context>中配置的defaultModelType,一个表可能会对应生成多个不同
- 的实体类,一个表对应多个类实际上并不方便,所以前面也推荐使用flat,这种情况下一个表对应一个实体类。
- 8.<sqlMapGenerator> (0个或1个):用于定义SQL映射生成器的属性。SQL Map Generator为每个内省表构建一个MyBatis/iBATIS格式的
- SQL映射XML文件。
- 该元素可选,最多配置一个。但是有如下两种必选的特殊情况:
- 1.如果targetRuntime目标是iBATIS2,该元素必须配置一个.
- 2.如果targetRuntime目标是MyBatis3,只有当<javaClientGenerator>需要XML时,该元素必须配置一个.
- 如果没有配置<javaClientGenerator>,则使用以下的规则:
- 如果指定了一个<sqlMapGenerator>,那么MBG将只生成XML的SQL映射文件和实体类。
- 如果没有指定<sqlMapGenerator>,那么MBG将只生成实体类。
- 9.<javaClientGenerator> (0个或1个):如果不配置该元素,就不会生成Mapper接口
- 10.<table> (1个或多个):
- 注意:子元素需要按照此顺序来配置,否则<context>会提示顺序错误
-->
<!--必选属性 >> id:用来唯一确定一个<context>元素
-可选属性 >> targetRuntime:此属性用于指定生成的代码的运行时环境
- 可选值 >> MyBatis3(默认值):使用该值,MBG将生成与MyBatis 3.0及更高版本以及JSE 5.0及更高版本兼容的对象(例如,Java
- 模型和映射器接口将使用泛型类型)。 这些生成的对象中的“by example”方法支持几乎所有的动态where子句。
- 此外,使用这些生成器生成的Java对象支持许多JSE 5.0功能,包括参数化类型和注释。
- MyBatis3Simple:使用该值,MBG将生成与MyBatis 3.0及更高版本以及JSE 5.0及更高版本兼容的对象(例如,Java模
- 型和映射器接口将使用泛型类型)。 使用此目标运行时生成的映射器是非常基本的CRUD操作,只是没有
- “by example”方法和非常少的动态SQL。 使用这些生成器生成的Java对象支持许多JSE 5.0功能,包括参数化
- 类型和注释
- MyBatis3DynamicSql:使用该值,MBG将生成与MyBatis版本3.4.2及更高版本以及Java 8及更高版本兼容的对象
-