zoukankan      html  css  js  c++  java
  • java之springboot的mybatis-generator-maven-plugin的逆向工程的使用(二)

    一,根据上篇博客java之springboot的mybatis的使用(一)的基础上,我们添加逆向工程

    1》我们先理解啥是逆向工程:就是将数据库的表生成java工程的dao,实体和mapper文件

    二,我们开始撸代码

    项目结构如下:

    1》我们先将插件添加进去,看下我的pom.xml文件(PS:mybatis-generator-maven-plugin和mysql-connector-java的版本要匹配,如下版本就可用1.3.7和8.0.20,试过用1.3.5和8.0.20是生成失败的)

    <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.nl.testmybatis</groupId>
        <artifactId>testmybatis</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.7.RELEASE</version>
        </parent>
    
        <dependencies>
            <!--springframework.boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--这个mysql驱动-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.20</version>
            </dependency>
            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.3</version>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <!--在使用mybatis时我们需要重复的去创建pojo类、mapper文件以及dao类并且需要配置它们之间的依赖关系,
                比较麻烦且做了大量的重复工作,mybatis官方也发现了这个问题,
                因此给我们提供了mybatis generator工具来帮我们自动创建pojo类、
                mapper文件以及dao类并且会帮我们配置好它们的依赖关系。
                -->
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.7</version>
                    <configuration>
                        <configurationFile>${project.basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                        <overwrite>true</overwrite>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>8.0.20</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </project>

    二,我们添加generatorConfig.xml文件,代码如下(PS:这里我们需要注意targetPackage和targetProject的配置,targetPackage:生成文件的名字,targetProject生成文件的路径,如果没有配置成功会生成在taget下,如下图)

     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>
        <!-- 驱动包 -->
        <!-- <classPathEntry location="lib/mysql-connector-java-5.1.37.jar"/> -->
        <!--<classPathEntry location="lib/mysql-connector-java-8.0.20.jar"/>-->
    
        <!-- 相关数据表逆向工厂 -->
        <context id="crmTableGenV1.0" targetRuntime="MyBatis3">
            <!--解决生成重复xml内容问题-->
            <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"></plugin>
            <commentGenerator>
                <property name="suppressAllComments" value="true" /><!-- 是否去除自动生成的注释 true:是 : false:否 -->
            </commentGenerator>
    
            <!--mysql配置-->
            <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                            connectionURL="jdbc:mysql://120.0.0.1:3306/test?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=true&amp;serverTimezone=UTC"
                            userId="root"
                            password="root">
            </jdbcConnection>
    
            <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!-- targetProject:生成PO类的位置 targetPackage和targetProject须配置好-->
            <javaModelGenerator targetPackage="com.nl.testmybatis.entity" targetProject=".srcmainjava">
                <property name="enableSubPackages" value="true" /><!-- enableSubPackages:是否让schema作为包的后缀 (对mysql,数据库即schema)-->
                <property name="trimStrings" value="true" /><!-- 从数据库返回的值被清理前后的空格 -->
            </javaModelGenerator>
    
            <!-- targetProject:mapper映射文件保存的位置 targetPackage和targetProject须配置好-->
            <sqlMapGenerator targetPackage="mapping" targetProject=".srcmain
    esources">
                <property name="enableSubPackages" value="true" /><!-- enableSubPackages:是否让schema作为包的后缀 (对mysql,数据库即schema)-->
            </sqlMapGenerator>
    
            <!-- targetPackage:mapper接口生成的位置 targetPackage和targetProject须配置好-->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.nl.testmybatis.mapper" targetProject=".srcmainjava">
                <property name="enableSubPackages" value="true" /><!-- enableSubPackages:是否让schema作为包的后缀 (对mysql,数据库即schema)-->
            </javaClientGenerator>
    
            <!-- **************************************指定数据库表************************************** -->
            <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
            <table tableName="test2020" domainObjectName="test2020"
                   enableCountByExample="false"
                   enableUpdateByExample="false"
                   enableDeleteByExample="false"
                   enableSelectByExample="false"
                   selectByExampleQueryId="false">
                <generatedKey column="id" sqlStatement="MYSQL" identity="true"/>
            </table>
        </context>
    </generatorConfiguration>

    三,配置好了,这个时候我们改怎么启动呢?如下图,我们选择看右侧Maven Project,如果你没有右侧菜单栏,我们点击左下角截图的小图标就出来了

     步骤如下图:

    1》点击Maven Project

    2》选择mybatis-generator

    3》选择mybatis-generator:generate

    4》点击三角符号运行即可

     运行结果

     生成的文件

     执行失败总结:

    1》mybatis-generator-maven-plugin和mysql-connector-java的版本要匹配,如下版本就可用1.3.7和8.0.20,试过用1.3.5和8.0.20是生成失败的

    2》需要注意targetPackage和targetProject的配置,targetPackage:生成文件的名字,targetProject生成文件的路径,如果没有配置成功会生成在taget下

    3》需要在URL后面添加时区

  • 相关阅读:
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 3037 Saving Beans【Lucas定理】【模板题】【模板】【组合数取余】
    8.Math 对象
  • 原文地址:https://www.cnblogs.com/May-day/p/14199627.html
Copyright © 2011-2022 走看看