一.引入有关jar包
<properties> <java.version>1.8</java.version> <!--mybatis--> <mybatis-boot.version>2.1.0</mybatis-boot.version> <mybatis-generator.version>1.3.5</mybatis-generator.version> <!--通用mapper--> <tk.mapper.version>3.4.6</tk.mapper.version> <tk.mapper.boot.version>1.2.4</tk.mapper.boot.version> <!--分页插件--> <pagehelper.version>1.2.10</pagehelper.version> <!--mysql驱动--> <mysql.version>8.0.17</mysql.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis-boot.version}</version> </dependency> <!-- 通用 Mapper --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>${tk.mapper.boot.version}</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>${tk.mapper.version}</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>${mybatis-generator.version}</version> </dependency> <!--mysql驱动包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!--分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${pagehelper.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- mybatis generator自动生成代码 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>${mybatis-generator.version}</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>${mybatis-generator.version}</version> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>${tk.mapper.version}</version> </dependency> </dependencies> <executions> <execution> <id>Generate MyBatis Artifacts</id> <phase>package</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <!--允许移动生成的文件 --> <verbose>true</verbose> <!-- 是否覆盖 --> <overwrite>true</overwrite> <!-- 自动生成的配置 --> <configurationFile> src/main/resources/generatorConfig.xml</configurationFile> </configuration> </plugin> </plugins> </build>
这里有一点需要注意的是,mysql驱动需要跟自己本地安装的mysql版本保持一致,或者在你安装版本之上。不然会启动报错。
二.配置application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/sbc-supplier?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=123456 #实体类所在包名 mybatis.type-aliases-package=com.seaway.elementui.model mybatis.mapper-locations=com.seaway.elementui.mapper
配置好数据源,mybatis全局配置。
三.引入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">
<generatorConfiguration>
<!--1.注意:mysql 连接数据库jar 这里选择自己本地位置-->
<classPathEntry location="D:\apache-maven-3.6.1\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar" />
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="javaFileEncoding" value="UTF-8"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<property name="useMapperCommentGenerator" value="true"/>
<!-- 生成model的时候生成lombok的注解-->
<plugin type="org.mybatis.generator.plugins.LombokPlugin">
<property name="hasLombok" value="true" />
</plugin>
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<!-- caseSensitive默认false,当数据库表名区分大小写时,可以将该属性设置为true -->
<property name="caseSensitive" value="true"/>
<!--forceAnnotation 是否强制生成注解,默认 false,如果设置为 true,不管数据库名和字段名是否一致,都会生成注解(包含 @Table 和 @Column)。-->
<property name="forceAnnotation" value="true"/>
</plugin>
<commentGenerator>
<property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
</commentGenerator>
<jdbcConnection connectionURL="jdbc:mysql://127.0.0.1:3306/sbc-supplier?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC"
driverClass="com.mysql.cj.jdbc.Driver"
password="123456"
userId="root" />
<!--2注意:targetProject属性要配置为项目绝对路径,否则无法自动生成相关实体操作类。 -->
<!-- 生成pojo实体类-->
<javaModelGenerator targetPackage="com.seaway.elementui.model" targetProject="src/main/java" />
<!-- 生成Mapper接口对应的XML文件-->
<sqlMapGenerator targetPackage="com.seaway.elementui.mapper" targetProject="src/main/java" />
<!-- 生成对应的接口文件,该接口会自动继承前面配置的通用Mapper接口-->
<javaClientGenerator targetPackage="com.seaway.elementui.mapper" targetProject="src/main/java" type="XMLMAPPER" />
<table tableName="tb_menu_info"
domainObjectName="TbMenuInfo"
enableCountByExample="true" enableUpdateByExample="true"
enableDeleteByExample="true" enableSelectByExample="true"
selectByExampleQueryId="true">
</table>
</context>
</generatorConfiguration>
四.集成Lombok插件
package org.mybatis.generator.plugins; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.PluginAdapter; import org.mybatis.generator.api.dom.java.Interface; import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.TopLevelClass; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; public class LombokPlugin extends PluginAdapter { public LombokPlugin() { } public boolean validate(List<String> list) { return true; } public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { topLevelClass.addImportedType("lombok.Data"); topLevelClass.addAnnotation("@Data"); //topLevelClass.addImportedType("lombok.Getter"); //topLevelClass.addImportedType("lombok.Setter"); //topLevelClass.addImportedType("lombok.ToString"); //topLevelClass.addAnnotation("@Getter"); //topLevelClass.addAnnotation("@Setter"); //topLevelClass.addAnnotation("@ToString"); topLevelClass.addJavaDocLine("/**"); topLevelClass.addJavaDocLine("* Created by Mybatis Generator " + this.date2Str(new Date())); topLevelClass.addJavaDocLine("*/"); return true; } public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { interfaze.addJavaDocLine("/**"); interfaze.addJavaDocLine("* Created by Mybatis Generator " + this.date2Str(new Date())); interfaze.addJavaDocLine("*/"); return true; } public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) { return false; } public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) { return false; } private String date2Str(Date date) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); return sdf.format(date); } }
这里特别注意一点,这个插件类的包名需要为package org.mybatis.generator.plugins;
然后用idea编译该类。
然后在本地的maven仓库中,找到generetor-core包,将当前的class文件放入其中。
到这就基本已经配置完成。
五.运行maven命令--mybatis-generator:generate
双击执行,运行结果如下说明成功。