springboot集成mybatis自动生成代码

需求: springboot项目,通过mybatis自动根据数据库生成对应的实体/mapper

开发工具: idea

方法:

一、创建一个springboot对象

 

 

 

 

 二、配置pom 

 

  我的pom如下:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>2.4.3</version>
 9         <relativePath/> <!-- lookup parent from repository -->
10     </parent>
11     <groupId>com.example</groupId>
12     <artifactId>mybatisgen</artifactId>
13     <version>0.0.1-SNAPSHOT</version>
14     <name>mybatisgen</name>
15     <description>Demo project for Spring Boot</description>
16     <properties>
17         <java.version>1.8</java.version>
18     </properties>
19     <dependencies>
20         <dependency>
21             <groupId>org.springframework.boot</groupId>
22             <artifactId>spring-boot-starter-data-jdbc</artifactId>
23         </dependency>
24         <dependency>
25             <groupId>org.springframework.boot</groupId>
26             <artifactId>spring-boot-starter-web</artifactId>
27         </dependency>
28         <dependency>
29             <groupId>org.mybatis.spring.boot</groupId>
30             <artifactId>mybatis-spring-boot-starter</artifactId>
31             <version>2.1.4</version>
32         </dependency>
33 
34         <dependency>
35             <groupId>mysql</groupId>
36             <artifactId>mysql-connector-java</artifactId>
37             <scope>runtime</scope>
38         </dependency>
39         <dependency>
40             <groupId>org.springframework.boot</groupId>
41             <artifactId>spring-boot-starter-test</artifactId>
42             <scope>test</scope>
43         </dependency>
44 
45         <dependency>
46             <groupId>org.mybatis.generator</groupId>
47             <artifactId>mybatis-generator-core</artifactId>
48             <version>1.3.6</version>
49         </dependency>
50 
51         <dependency>
52             <groupId>com.alibaba</groupId>
53             <artifactId>druid-spring-boot-starter</artifactId>
54             <version>1.1.9</version>
55         </dependency>
56     </dependencies>
57 
58     <build>
59         <plugins>
60             <plugin>
61                 <groupId>org.springframework.boot</groupId>
62                 <artifactId>spring-boot-maven-plugin</artifactId>
63             </plugin>
64             <plugin>
65                 <groupId>org.mybatis.generator</groupId>
66                 <artifactId>mybatis-generator-maven-plugin</artifactId>
67                 <version>1.3.2</version>
68                 <configuration>
69                     <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
70                     <overwrite>true</overwrite>
71                     <verbose>true</verbose>
72                 </configuration>
73             </plugin>
74             <plugin>
75                 <groupId>org.apache.maven.plugins</groupId>
76                 <artifactId>maven-resources-plugin</artifactId>
77                 <version>2.4.3</version>
78                 <configuration>
79                 </configuration>
80             </plugin>
81         </plugins>
82         <resources>
83             <resource>
84                 <directory>${basedir}/src/main/resources</directory>
85                 <excludes>
86                     <exclude>lib/*.jar</exclude>
87                 </excludes>
88             </resource>
89         </resources>
90     </build>
91 
92 </project>

三、下载依赖的资源

四、配置application.properties文件

 1 #=================mybatis相关配置===================#
 2 mybatis.jdbc.jar=C:/Users/Administrator/AppData/Roaming/JetBrains/IntelliJIdea2020.1/jdbc-drivers/MySQL ConnectorJ/8.0.21/mysql-connector-java-8.0.21.jar
 3 mybatis.javaModelGenerator.targetPackage=com.example.mybatisgen.entity
 4 mybatis.generator.targetProject=src/main/java
 5 mybatis.sqlMapGenerator.targetPackage=com.example.mybatisgen.mapper
 6 mybatis.javaClientGenerator.targetPackage=com.example.mybatisgen.mapper
 7 #mybatis扫描接口对应的xml文件
 8 mybatis.type-aliases-package=com.example.mybatisgen.entity
 9 mybatis.mapper-locations=classpath*:mapper/*.xml
10 
11 #=================mysql相关配置===================#
12 spring.datasource.name=virtual_control_db
13 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
14 #druid相关配置
15 # 监控统计拦截的filters
16 spring.datasource.druid.filters=stat
17 spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
18 spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
19 spring.datasource.druid.username=root
20 spring.datasource.druid.password=root

根据自己的项目情况和数据库情况进行更改

五、配置自动生成的xml

在resources下创建文件generatorConfig.xml

 文件内容直接粘贴我的就行,因为配置基本都是变量,从application.properties中读取的,基本上不需要更改。不过需要根据自己数据库情况改动下<!--生成全部的表-->注解处的配置。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE generatorConfiguration
 3         PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
 4         "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
 5 <!-- 配置 tableName,使用 Run As Maven build 生成 dao 层 -->
 6 <generatorConfiguration>
 7     <!-- 配置文件路径 -->
 8     <properties resource="application.properties"/>
 9     <!--数据库驱动包路径 -->
10     <classPathEntry location="${mybatis.jdbc.jar}"/>
11 
12     <!-- flat表示为每一张表只生成一个实体类。这个实体类包含表中的所有字段-->
13     <context id="virtual-control-sql" defaultModelType="flat">
14         <!-- 生成的Java文件的编码 -->
15         <property name="javaFileEncoding" value="UTF-8"/>
16         <!-- 格式化java代码 -->
17         <property name="javaFormatter"
18                   value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
19         <!-- 格式化XML代码 -->
20         <property name="xmlFormatter"
21                   value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
22         <!-- 抑制警告 -->
23         <property name="suppressTypeWarnings" value="true"/>
24         <!-- generate entity时,生成serialVersionUID -->
25         <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/>
26 
27         <!--关闭注释 -->
28         <commentGenerator>
29             <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
30             <property name="suppressDate" value="true"/> <!-- 是否生成注释代时间戳 -->
31         </commentGenerator>
32 
33         <!--数据库连接信息 -->
34         <jdbcConnection driverClass="${spring.datasource.druid.driver-class-name}"
35                         connectionURL="${spring.datasource.druid.url}"
36                         userId="${spring.datasource.druid.username}"
37                         password="${spring.datasource.druid.password}">
38         </jdbcConnection>
39 
40 
41         <!--生成的model 包路径 -->
42         <javaModelGenerator targetPackage="${mybatis.javaModelGenerator.targetPackage}"
43                             targetProject="${mybatis.generator.targetProject}">
44             <property name="trimStrings" value="true"/>
45         </javaModelGenerator>
46 
47         <!--生成xml mapper文件 路径 -->
48         <sqlMapGenerator targetPackage="${mybatis.sqlMapGenerator.targetPackage}"
49                          targetProject="${mybatis.generator.targetProject}">
50             <property name="enableSubPackages" value="true"/>
51         </sqlMapGenerator>
52 
53         <!-- 生成的Dao接口 的包路径 -->
54         <javaClientGenerator type="XMLMAPPER"
55                              targetPackage="${mybatis.javaClientGenerator.targetPackage}"
56                              targetProject="${mybatis.generator.targetProject}">
57         </javaClientGenerator>
58 
59         <!--生成全部的表-->
60         <table tableName="user">
61             <generatedKey column="id" sqlStatement="Mysql"/>
62         </table>
63     </context>
64 </generatorConfiguration>

六、执行插件目标,准备生成代码

  

 执行成功控制台会显示如下信息:

 看看项目中是否已经生成新的代码:

 试试看吧~

原文地址:https://www.cnblogs.com/ywy8/p/14481807.html