【SpringBoot】【Mybatis】Mapper4之一键生成Dao层代码

前提

通用Mapper支持Mybatis-3.2.4及以上版本

步骤

  • 建表
  • 建module
  • pom文件
  • 改配置
  • 一键生成

1. 建表

在数据库,写入需要代码生成的表,例如:

1 CREATE TABLE t_order(
2 `id` BIGINT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
3 `user_id` BIGINT(11) DEFAULT NULL COMMENT '用户id',
4 `product_id` BIGINT(11)DEFAULT NULL COMMENT '产品id',
5 `count` INT(11) DEFAULT NULL COMMENT '数量',
6 `money` DECIMAL(11,0) DEFAULT NULL COMMENT '金额',
7 `status` INT(1) DEFAULT NULL COMMENT '订单状态: 0:创建中; 1:已完结'
8 )ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
9 SELECT * FROM t_order;

2. 建module

这里的module与业务无关,只是为了生成Dao层代码。子工程名称 mybatis_generator2024

3. pom文件

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <project xmlns="http://maven.apache.org/POM/4.0.0"
  3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5     <parent>
  6         <artifactId>mscloudv5</artifactId>
  7         <groupId>com.atguigu.cloud</groupId>
  8         <version>1.0-SNAPSHOT</version>
  9     </parent>
 10     <modelVersion>4.0.0</modelVersion>
 11 
 12     <!--我自己独一份,只是一个普通Maven工程,与boot和cloud无关-->
 13     <artifactId>mybatis_generator2024</artifactId>
 14 
 15     <properties>
 16         <maven.compiler.source>17</maven.compiler.source>
 17         <maven.compiler.target>17</maven.compiler.target>
 18         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 19     </properties>
 20 
 21     <dependencies>
 22         <!--Mybatis 通用mapper tk单独使用,自己独有+自带版本号-->
 23         <dependency>
 24             <groupId>org.mybatis</groupId>
 25             <artifactId>mybatis</artifactId>
 26             <version>3.5.13</version>
 27         </dependency>
 28         <!-- Mybatis Generator 自己独有+自带版本号-->
 29         <dependency>
 30             <groupId>org.mybatis.generator</groupId>
 31             <artifactId>mybatis-generator-core</artifactId>
 32             <version>1.4.1</version>
 33         </dependency>
 34         <!--通用Mapper-->
 35         <dependency>
 36             <groupId>tk.mybatis</groupId>
 37             <artifactId>mapper</artifactId>
 38         </dependency>
 39         <!--mysql8.0-->
 40         <dependency>
 41             <groupId>mysql</groupId>
 42             <artifactId>mysql-connector-java</artifactId>
 43         </dependency>
 44         <!--persistence-->
 45         <dependency>
 46             <groupId>javax.persistence</groupId>
 47             <artifactId>persistence-api</artifactId>
 48         </dependency>
 49         <!--hutool-->
 50         <dependency>
 51             <groupId>cn.hutool</groupId>
 52             <artifactId>hutool-all</artifactId>
 53         </dependency>
 54         <!--lombok-->
 55         <dependency>
 56             <groupId>org.projectlombok</groupId>
 57             <artifactId>lombok</artifactId>
 58             <optional>true</optional>
 59         </dependency>
 60         <dependency>
 61             <groupId>org.springframework.boot</groupId>
 62             <artifactId>spring-boot-starter-test</artifactId>
 63             <scope>test</scope>
 64             <exclusions>
 65                 <exclusion>
 66                     <groupId>org.junit.vintage</groupId>
 67                     <artifactId>junit-vintage-engine</artifactId>
 68                 </exclusion>
 69             </exclusions>
 70         </dependency>
 71     </dependencies>
 72 
 73     <build>
 74         <resources>
 75             <resource>
 76                 <directory>${basedir}/src/main/java</directory>
 77                 <includes>
 78                     <include>**/*.xml</include>
 79                 </includes>
 80             </resource>
 81             <resource>
 82                 <directory>${basedir}/src/main/resources</directory>
 83             </resource>
 84         </resources>
 85         <plugins>
 86             <plugin>
 87                 <groupId>org.springframework.boot</groupId>
 88                 <artifactId>spring-boot-maven-plugin</artifactId>
 89                 <configuration>
 90                     <excludes>
 91                         <exclude>
 92                             <groupId>org.projectlombok</groupId>
 93                             <artifactId>lombok</artifactId>
 94                         </exclude>
 95                     </excludes>
 96                 </configuration>
 97             </plugin>
 98             <plugin>
 99                 <groupId>org.mybatis.generator</groupId>
100                 <artifactId>mybatis-generator-maven-plugin</artifactId>
101                 <version>1.4.2</version>
102                 <configuration>
103                     <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
104                     <overwrite>true</overwrite>
105                     <verbose>true</verbose>
106                 </configuration>
107                 <dependencies>
108                     <dependency>
109                         <groupId>mysql</groupId>
110                         <artifactId>mysql-connector-java</artifactId>
111                         <version>8.0.33</version>
112                     </dependency>
113                     <dependency>
114                         <groupId>tk.mybatis</groupId>
115                         <artifactId>mapper</artifactId>
116                         <version>4.2.3</version>
117                     </dependency>
118                 </dependencies>
119             </plugin>
120         </plugins>
121     </build>
122 </project>

4. 改配置

配置config.properties或config.yaml文件。设置数据库

# mysql5.7

#User表包名
package.name=com.jianqun.cloud

jdbc.driverClass = com.mysql.jdbc.Driver
jdbc.url= jdbc:mysql://192.168.148.3:3306/db2024?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.user = root
jdbc.password = root

2. 配置generatorConfig.xml文件。

 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 
 6 <generatorConfiguration>
 7     <properties resource="config.properties"/>
 8 
 9     <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
10         <property name="beginningDelimiter" value="`"/>
11         <property name="endingDelimiter" value="`"/>
12 
13         <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
14             <property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
15             <property name="caseSensitive" value="true"/>
16         </plugin>
17 
18         <jdbcConnection driverClass="${jdbc.driverClass}"
19                         connectionURL="${jdbc.url}"
20                         userId="${jdbc.user}"
21                         password="${jdbc.password}">
22         </jdbcConnection>
23 
24         <javaModelGenerator targetPackage="${package.name}.entities" targetProject="src/main/java"/>
25 
26         <sqlMapGenerator targetPackage="${package.name}.mapper" targetProject="src/main/java"/>
27 
28         <javaClientGenerator targetPackage="${package.name}.mapper" targetProject="src/main/java" type="XMLMAPPER"/>
29 
30         <table tableName="t_pay" domainObjectName="Pay">
31             <generatedKey column="id" sqlStatement="JDBC"/>
32         </table>
33     </context>
34 </generatorConfiguration>

5. 一键生成

双击mybatis-generator:gererate,一键生成entity+mapper接口+ xml实现SQL。

 

posted @ 2025-01-22 09:13  陆陆无为而治者  阅读(53)  评论(0)    收藏  举报