zoukankan      html  css  js  c++  java
  • mybaits:逆向生成

    mybatis官方提供了一个逆向工程包,可以针对数据库表自动生成mybatis执行所需要的Pojo、Mapper xml文件、Mapper Interface接口文件。 
    mybatis-generator有很多种用法:命令行、eclipse/IDEA、Maven插件,其使用原理完全一样。 

    无论哪种方式,首先要准备两个组件包:mybatis-generator-core-1.X.X.jar 和MySQL-connector-Java-5.X.XX.jar (点击下载两个组件

    要实现MyBatis的逆向工程,首先要先搭建好一个SpringBoot+MyBatis的框架,具体的搭建我这里就不在概述,现在假设已经有一个搭建的框架

    1.首先我们需要在pom.xml中引入两个依赖,依赖如下:

        <!-- mybatis逆向工程jar包 -->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>1.3.4</version>
            </dependency>
    

    2.添加插件

           <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>1.3.2</version>
                    <configuration>
                        <overwrite>true</overwrite>
                        <configurationFile>src/main/resources/generator/generatorConfig.xml</configurationFile>
                    </configuration>
                </plugin>

    需要注意的是,src/main/resources/generator/generatorConfig.xml
    中的内容一定要写generatorConfig.xml从src开始的全路径,因为在执行逆向工程的时候会根据这个路径去读取generatorConfig.xml中的配置。

    3.在resources包下创建一个generator文件夹,然后在文件夹中创建generatorConfig.xml文件,即:src/main/resources/generator/generatorConfig.xml
    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="D:/development/mysql/mysql-connector-java-8.0.15.jar"/>
        <context id="DB2Tables" targetRuntime="MyBatis3">
            <!-- JavaBean 实现 序列化 接口 -->
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
            <!-- 生成toString -->
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
            <!-- optional,旨在创建class时,对注释进行控制 -->
            <commentGenerator>
                <property name="suppressDate" value="true"/>
                <!-- <property name="suppressAllComments" value="true"/>-->
            </commentGenerator>
            <!--数据库链接URL,用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                            connectionURL="jdbc:mysql://192.168.0.160:3306/mall"
                            userId="root"
                            password="123456">
            </jdbcConnection>
            <!-- 类型转换 -->
            <javaTypeResolver >
                <!-- 是否使用bigDecimal,
                    false: 把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer(默认)
                    true:  把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal
                -->
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
            <!-- 生成模型的包名和位置-->
            <javaModelGenerator targetPackage="com.myy.mall.customer.entity" targetProject="src/main/java">
                <!-- 默认false 是否允许子包 -->
                <property name="enableSubPackages" value="true" />
                <!-- 默认false 是否对model添加 构造函数 -->
                <property name="constructorBased" value="false"/>
                <!-- 默认false 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->
                <property name="immutable" value="false"/>
                <!-- 默认false 是否对类CHAR类型的列的数据进行trim操作 -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!-- 生成映射文件的包名和位置-->
            <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
            <!-- 生成DAO的包名和位置-->
            <javaClientGenerator type="XMLMAPPER" targetPackage="com.myy.mall.customer.dao" targetProject="src/main/java">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
            <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
            <!-- <table tableName="risk_model_order" domainObjectName="DSRiskModelOrder" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
             <table tableName="tel_bill_record" domainObjectName="DSTelBillRecord" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>-->
            <table tableName="oms_order" domainObjectName="OrderPO" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
        </context>
    </generatorConfiguration>
    

    需要注意的是以下几点:

    mysql-connector-java-5.1.46.jar的路径是本地的绝对路径
    数据库连接地址,用户名和密码需要修改成自己的数据库信息
    pojo类的位置、dao接口的位置、mapper配置文件的位置都修改成自己的
    最后一个table标签里面写表名称,多个表,可以使用多个table标签
    4.配置完了之后,我们就可执行逆向工程了,点击右侧的Maven,就能看到下面的结构,然后根据如果的路径找到mybatis-generator,双击运行即可

     

  • 相关阅读:
    卫星列表
    常见28个问题处理方法
    Dr.COM EPortal 认证
    Linux命令--chroot
    2020 最好的Linux网络监控工具
    auditctl(8)
    ElasticSearch 7.1.1 集群环境搭建
    ElasticSearch 常用 curl 命令
    利用Java的动态编译、动态加载结合EasyRules实现业务规则的动态性
    java根据数据库自动生成JavaBean或pojo
  • 原文地址:https://www.cnblogs.com/mengY/p/12073288.html
Copyright © 2011-2022 走看看