• 使用mybatis-generator在自动生成Model类和Mapper文件


      使用mybatis-generator插件可以很轻松的实现mybatis的逆向工程,即,能通过表结构自动生成对应的java类及mapper文件,可以大大提高工作效率,并且它提供了很多自定义的设置可以应对不同的需求,最近做公司新开的一个项目就是使用到了它,简单粗暴.

      下面介绍详细的使用步骤和注意事项,我的项目环境是idea+maven+ssm,但是我新建了一个空的maven项目专门用来生成java代码,然后再把它有选择的copy到自己的项目环境中.

      1.新建一个空的webapp类型的maven项目.

      2.在pom.xml文件中加入mybatis-generator插件的配置:

    <build>
        <plugins>
          <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.2</version>
            <configuration>
              <verbose>true</verbose>
              <overwrite>true</overwrite>
            </configuration>
          </plugin>
        </plugins>
    </build>

      3.在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>
        <!-- 指定数据库驱动的地址 这是我mac下的绝对路径-->
        <classPathEntry location="/Users/wyg/personal/视频教程/generatorSqlmapCustom/lib/mysql-connector-java-5.1.28-bin.jar" />
        <!--一个数据库 对应一个context-->
        <!--
        context:生成一组对象的环境
        id:必选,上下文id,用于在生成错误时提示
        defaultModelType:指定生成对象的样式
            1,conditional:类似hierarchical;
            2,flat:所有内容(主键,blob)等全部生成在一个对象中;
            3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
        targetRuntime:
            1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
            2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
        introspectedColumnImpl:类全限定名,用于扩展MBG
    -->
        <context id="testTables" targetRuntime="MyBatis3">
            <commentGenerator>
                <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                <property name="suppressAllComments" value="true" />
            </commentGenerator>
            <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/shop" userId="root"
                password="123">
            </jdbcConnection>
            <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
                NUMERIC 类型解析为java.math.BigDecimal -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!-- targetProject:生成PO类的位置 -->
            <javaModelGenerator targetPackage="com.ximalaya.shop.data1"
                targetProject="src/main/java" >
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false" />
                <!-- 从数据库返回的值被清理前后的空格 -->
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
            <!-- targetProject:mapper映射文件生成的位置 -->
            <sqlMapGenerator targetPackage="com.ximalaya.shop.mapper1"
                targetProject="src/main/java">
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false" />
            </sqlMapGenerator>
            <!-- targetPackage:mapper接口生成的位置 -->
            <!-- 客户端代码,生成易于使用的针对Model对象和XML配置文件 的代码
                    type="ANNOTATEDMAPPER",生成Java Model 和基于注解的Mapper对象
                    type="MIXEDMAPPER",生成基于注解的Java Model 和相应的Mapper对象
                    type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口
            -->
            <javaClientGenerator type="ANNOTATEDMAPPER"
                targetPackage="com.ximalaya.shop.mapper1"
                targetProject="src/main/java">
                <!-- enableSubPackages:是否让schema作为包的后缀 -->
                <property name="enableSubPackages" value="false" />
            </javaClientGenerator>
            <!-- 指定数据库表 -->
            <table schema="" tableName="tb_order">
                <property name="modelOnly" value="false"/>
            </table>
            <table schema="" tableName="tb_order_product">
                <property name="modelOnly" value="false"/>
            </table>
            <table schema="" tableName="tb_order_status">
                <property name="modelOnly" value="false"/>
            </table>
        </context>
    </generatorConfiguration>

      这里需要注意的有两点,第一个就是配置好自己的数据库驱动,我本来将mysql-connector-java-5.1.28-bin.jar直接引入到项目中,然后就忽略了这个标签,但是运行失败,找不到数据库驱动,然后我加上该标签,指向文件中的mysql-connector-java-5.1.28-bin.jar的绝对路径,就好了.第二个就是javaClientGenerator标签里的type,在注释中有详细解释,这里可以根据你实际的需求生成不同类型的java代码.

      配置完之后,直接在当前项目下输入命令行:mvn mabatis-generator:generate,注意我的项目名称是shopTest所以在该目录下运行.

      

      如果能看到BUILD SUCCESS,那就证明操作成功了,去你指定的src目录下查看生成的代码即可.

  • 相关阅读:
    Windows 系统共享文件扫描
    工业以太网EtherNet/IP协议安全分析整理
    说说搜索,你觉得自己的信息有多安全
    java网络编程
    攻击WordPress和其他程序
    ZenMap扫描笔记
    WireShark Wifi认证数据包分析(论文idea)
    linux 基础知识(三)
    unity 3D 学习笔记
    WPA-PSK无线网络密码破解原理
  • 原文地址:https://www.cnblogs.com/fingerboy/p/6078402.html
Copyright © 2020-2023  润新知