问答详情
源自:4-4 业务场景实战之用户下单功能实现~开发“用户下单”接口

mabatis逆向工程,怎么实现的。

看网上有相关介绍,需要加上依赖包,pom中添加插件,工程添加generator配置文件。资料下载里面没看到啊。老师是怎么逆向的?

提问者:千层酥油饼 2019-07-24 15:19

个回答

  • 千层酥油饼
    2019-07-24 17:57:23

    网上看的,已经解决

    https://img2.mukewang.com/5d382a000001868702310059.jpg

    <!--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="mybatis-generator/mybatisGeneratorinit.properties"/>
    
        <!--数据库驱动jar包的真实路径,若在pom.xml文件中,增加了如下插件
         <plugin>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.38</version>
                </dependency>
            </dependencies>
         </plugin>,则下面的数据库驱动jar包的真实路径忽略-->
        <!--<classPathEntry location="C:\Users\btc\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>-->
    
        <!-- 一个数据库一个context -->
        <!--defaultModelType="flat" 大数据字段,不分表 -->
        <context id="DB2Tables" targetRuntime="MyBatis3">
    
            <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表;
                    一般保留默认值,遇到数据库关键字(Java关键字),使用columnOverride覆盖 -->
            <property name="autoDelimitKeywords" value="true" />
    
            <!-- 生成的Java文件的编码 -->
            <property name="javaFileEncoding" value="utf-8" />
    
            <!-- beginningDelimiter和endingDelimiter:指明数据库的用于标记数据库对象名的符号,比如ORACLE就是双引号,MYSQL默认是`反引号; -->
            <property name="beginningDelimiter" value="`" />
            <property name="endingDelimiter" value="`" />
    
            <!-- 格式化java代码 -->
            <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
    
            <!-- 格式化XML代码 -->
            <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
            <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
            <plugin type="org.mybatis.generator.plugins.ToStringPlugin" />
    
            <!-- 注释 -->
            <commentGenerator >
                <property name="suppressAllComments" value="true"/><!-- 是否取消注释 -->
                <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->
            </commentGenerator>
    
            <!-- jdbc连接 -->
            <jdbcConnection driverClass="${jdbc_driver}" connectionURL="${jdbc_url}" userId="${jdbc_user}" password="${jdbc_password}" />
    
            <!-- 类型转换 -->
            <javaTypeResolver>
                <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,
                若设置 true 时,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal -->
                <property name="forceBigDecimals" value="false"/>
            </javaTypeResolver>
    
            <!-- 生成实体类地址 -->
            <javaModelGenerator targetPackage="${domainPackage}" targetProject="${domain}">
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false"/>
                <!-- 从数据库返回的值被清理前后的空格 -->
                <property name="trimStrings" value="false"/>
            </javaModelGenerator>
    
            <!-- 生成 mapxml 文件 -->
            <sqlMapGenerator targetPackage="mapper" targetProject="${resources}">
                <property name="enableSubPackages" value="true"/>
            </sqlMapGenerator>
    
            <!-- 生成 mapxml 对应 client,也就是接口 dao -->
    
            <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件的代码
                    type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
                    type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
                    type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
            -->
            <javaClientGenerator type="XMLMAPPER" targetPackage="${mapperPackage}" targetProject="${mapper}">
                <property name="enableSubPackages" value="true"/>
            </javaClientGenerator>
    
            <!--生成对应表及类名-->
            <!-- table可以有多个,每个数据库中的表都可以写一个table,
            tableName表示要匹配的数据库表,也可以在tableName属性中通过使用%通配符来匹配所有数据库表,只有匹配的表才会自动生成文件 -->
            <!--如果想生成一个表则tableName="table_name"-->
            <table tableName="%"
                   enableCountByExample="false"
                   enableUpdateByExample="false"
                   enableDeleteByExample="false"
                   enableSelectByExample="false"
                   selectByExampleQueryId="false">
                <property name="useActualColumnNames" value="false" />
                <!-- 数据库表主键 -->
                <generatedKey column="id" sqlStatement="Mysql" identity="true" />
            </table>
        </context>
    </generatorConfiguration>
    
    <!--mybatisGeneratorinit.properties-->
    jdbc_driver = com.mysql.jdbc.Driver
    jdbc_url = jdbc:mysql://localhost:3306/mooc_one?useUnicode=true&amp;characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false
    jdbc_user = root
    jdbc_password = 123456777
    
    # 按照 maven 工程生成的项目结构代码,如下的 domain、mapper、resources 的地址按如下进行配置
    domain = src/main/java
    domainPackage = com.yongh.mooc.dubbo.one.model.entity
    
    mapper = src/main/java
    mapperPackage = com.yongh.mooc.dubbo.one.model.mapper
    
    resources = src/main/resources

    pom

    https://img.mukewang.com/5d382a3d00018fcd05020372.jpg

    https://img4.mukewang.com/5d382a6d0001fc1708780559.jpg