springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】

springboot集成mybatis(generatorConfig.xml)

  • 1、pom.xml中引入数据库和mybatis依赖
  • 2、pom.xml中引入自动生成代码插件依赖
  • 3、完整的pom.xml
  • 4、application.yml文件配置数据库连接
  • 5、包结构
  • 6、resources包下新建jdbc.properties文件
  • 7、建表
  • 8、resources包下新建generatorConfig.xml文件
  • 9、右侧选择maven插件打开生成器生成代码
  • 10、双击mybatis-generator:generate
  • 11、成功生成代码
  • 12、为生成的代码添加注解

注:
springboot搭建参考: springboot的搭建
springboot集成mysql参考: springboot集成mysql

1、pom.xml中引入数据库和mybatis依赖

<!--springboot集成mybatis的依赖-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>
<!--集成mysql数据库-->
<!--mysql数据库驱动-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>


<!--数据库连接jdbc依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

2、pom.xml中引入自动生成代码插件依赖

此处有个generatorConfig.xml文件的读取位置需要根据自己文件所在的位置进行修改

<build>
    <plugins>
        <!--添加mybatis generator maven插件-->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <!--<version>2.3.4.RELEASE</version>-->
        </plugin>

        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <!--generatorConfig.xml位置-->
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <verbose>true</verbose>
                <!--                    如果本来就有mapper、dao文件了就覆盖-->
                <overwrite>true</overwrite>
            </configuration>

            <executions>
                <execution>
                    <id>Generate MyBatis Artifacts</id>
                    <!--<phase>package</phase>-->
                    <phase>deploy</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <!--此处必须添加mysql驱动包-->
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <scope>runtime</scope>
                    <version>${mysql.version}</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>

    <!--扫描指定的配置文件 如果mapper的xml文件没有放在resources目录下,而是放在了和接口类在一起的包,这里就必须配置-->
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.csv
                **/*.yml</include>
                <include>**/*.xml
                **/*.properties</include>
            </includes>
            <filtering>false</filtering>
        </resource>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.csv
                **/*.yml</include>
                <include>**/*.xml
                **/*.properties</include>
            </includes>
            <filtering>false</filtering>
        </resource>
    </resources>
</build>

3、完整的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.study</groupId>
    <artifactId>mybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>mybatisori</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>


        <!--集成mysql数据库-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>


<!--        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.6.1</version>
        </dependency>


        <!--springboot集成mybatis的依赖-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
        <!-- lombok依赖 用注解省去getter setter 方法等 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <!--添加mybatis generator maven插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--<version>2.3.4.RELEASE</version>-->
            </plugin>


            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.7</version>
                <configuration>
                    <!--generatorConfig.xml位置-->
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <verbose>true</verbose>
                    <!--                    如果本来就有mapper、dao文件了就覆盖-->
                    <overwrite>true</overwrite>
                </configuration>


                <executions>
                    <execution>
                        <id>Generate MyBatis Artifacts</id>
                        <!--<phase>package</phase>-->
                        <phase>deploy</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <!--此处必须添加mysql驱动包-->
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <scope>runtime</scope>
                        <version>${mysql.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>


        <!--扫描指定的配置文件 如果mapper的xml文件没有放在resources目录下,而是放在了和接口类在一起的包,这里就必须配置-->
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.csv
                    **/*.yml</include>
                    <include>**/*.xml
                    **/*.properties</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.csv
                    **/*.yml</include>
                    <include>**/*.xml
                    **/*.properties</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>


</project>

4、application.yml文件配置数据库连接

spring:
  application:
    name: springboot_union
  datasource:
    #url切换数据库之后如果对应数据库名称和路径有变动,需要修改url
    url: jdbc:mysql://localhost:3306/springboot_union?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    # serverTimezone=GMT%2B8 设置时区
    # useUnicode=true 是否使用Unicode编码
    # characterEncoding=utf8 设定字符集
    # autoReconnect=true 是否自动重连
    # allowMultiQueries=true 是否允许批量操作

5、包结构

springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第1张图片

6、resources包下新建jdbc.properties文件

spring.datasource.driverLocation=mysql-connector-java-8.0.21.jar
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot_union?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

7、建表

在springboot_union数据库中建表
springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第2张图片

建表语句

CREATE TABLE IF NOT EXISTS `mybatis_ori`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `user_name` VARCHAR(100) ,
     `user_id` VARCHAR(100) ,
     `address` VARCHAR(100) ,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

8、resources包下新建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>


    <properties resource="jdbc.properties"/>


    <context id="sqlserverTables" targetRuntime="MyBatis3">


        <!-- 生成的pojo,将implements Serializable-->
        <plugin type="org.mybatis.generator.plugins.SerializablePlugin"></plugin>
        <!-- 可序列化-->
        <!--替换默认生成的dao-Example-->
        <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin">
            <property name="searchString" value="Example$" />
            <property name="replaceString" value="Impl" />
        </plugin>


        <commentGenerator>
            <!-- 是否生成注释代时间戳-->
            <property name="suppressDate" value="true" />
            <!-- 是否去除自动生成的注释 true:是 : false:-->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>


        <!-- 数据库链接URL、用户名、密码 -->
        <jdbcConnection driverClass="${spring.datasource.driverClassName}"
                        connectionURL="${spring.datasource.url}"
                        userId="${spring.datasource.username}"
                        password="${spring.datasource.password}">
        </jdbcConnection>


        <!--默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer-->
        <!--true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal-->


        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>




        <!--生成model模型,对应的包路径,以及文件存放路径(targetProject),targetProject可以指定具体的路径,./src/main/java,-->
        <!--也可以使用“MAVEN”来自动生成,这样生成的代码会在target/generatord-source目录下-->
        <!--<javaModelGenerator targetPackage="com.joey.mybaties.test.pojo" targetProject="MAVEN">-->
        <javaModelGenerator targetPackage="com.study.mybatis.entity" targetProject="./src/main/java">
            <property name="enableSubPackages" value="true"/>
            <!-- 从数据库返回的值被清理前后的空格  -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>


        <!--对应的mapper.xml文件  -->
        <sqlMapGenerator targetPackage="com.study.mybatis.dao" targetProject="./src/main/java">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>


        <!-- 对应的Mapper接口类文件 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.study.mybatis.dao" targetProject="./src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>


        <!-- 列出要生成代码的所有表,这里配置的是不生成Example文件 -->
        <!--    配置表信息
                        tableName  表名
                        domainObjectName    实体类名称-->
        <table tableName="mybatis_ori"
               domainObjectName="MybatisUser"
               enableCountByExample="false"
               enableUpdateByExample="true"
               enableDeleteByExample="true"
               enableSelectByExample="true"
               selectByExampleQueryId="false">
            <property name="useActualColumnNames" value="false"/>
        </table>


    </context>
</generatorConfiguration>

9、右侧选择maven插件打开生成器生成代码

springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第3张图片

10、双击mybatis-generator:generate

springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第4张图片

11、成功生成代码

springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第5张图片

12、为生成的代码添加注解

springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第6张图片
springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第7张图片
springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】_第8张图片

END

你可能感兴趣的:(#,Mybatis,spring,boot,xml,java,mybatis,mysql)