美文网首页
Maven工程下mybatis-generator的使用

Maven工程下mybatis-generator的使用

作者: NoSuchElementEx | 来源:发表于2017-10-21 21:25 被阅读0次

pom.xml 注入构建插件

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.0</version>
    <dependencies>
        <!-- mysql连接驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
        </dependency>
    </dependencies>
    <configuration>
        <verbose>true</verbose>
        <outputDirectory>src/main/java</outputDirectory>
        <overwrite>true</overwrite>
<configurationFile>${basedir}/src/test/resources/generatorConfig.xml</configurationFile>
    </configuration>
</plugin>

逆向工程配置文件

<?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>


    <context id="users-dao">
        <!--是否生成注释-->
        <commentGenerator>
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <jdbcConnection userId="root" password="123"
                        driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/xtyr?charsetEncoding=utf8">
        </jdbcConnection>
        <javaModelGenerator targetPackage="cn.gduf.xtyr.modules.users.entity.gen"
                            targetProject="MAVEN">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="cn.gduf.xtyr.modules.users.dao.gen"
                         targetProject="MAVEN"></sqlMapGenerator>
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="cn.gduf.xtyr.modules.users.dao.gen" targetProject="MAVEN">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false"/>
        </javaClientGenerator>
        <table tableName="department"></table>
        <table tableName="roles"></table>
        <table tableName="user_role"></table>
        <table tableName="users"></table>
    </context>

</generatorConfiguration>

构建命令

可以在命令行通过以下命令执行:

  • mvn mybatis-generator:generate
    您可以通过标准的Maven命令属性传递参数, 例如:
  • mvn -Dmybatis.generator.overwrite=true mybatis-generator:generate

参考参数

所有的参数都是可选的,大部分都适合的默认值。

参数 表达式 类型 注释
configurationFile ${mybatis.generator.configurationFile} java.io.File 指定配置文件的名称。默认值:${basedir}/src/main/resources/generatorConfig.xml
contexts ${mybatis.generator.contexts} java.lang.String 如果指定了该参数,逗号隔开的这些context会被执行。 这些指定的context必须和配置文件中 <context> 元素的 id属性一致。 只有指定的这些contextid会被激活执行。如果没有指定该参数,所有的context都会被激活执行。
jdbcDriver ${mybatis.generator.jdbcDriver} java.lang.String 如果您指定了 sqlScript 参数, 当连接数据库时这里的值是JDBC驱动类的权限定名称。
jdbcPassword ${mybatis.generator.jdbcPassword} java.lang.String 如果您指定了 sqlScript 参数, 这是连接数据库的密码。
jdbcURL ${mybatis.generator.jdbcURL} java.lang.String 如果您指定了 sqlScript 参数, 这是连接数据库的JDBC URL
jdbcUserId ${mybatis.generator.jdbcUserId} java.lang.String 如果您指定了 sqlScript 参数, 这里是连接数据库的用户id
outputDirectory ${mybatis.generator.outputDirectory} java.io.File 将放置 MBG 所生成文件的目录。 这个目录是用于当 targetProject 在配置文件中设置特殊值的"MAVEN"时使用(大小写敏感)。默认值:${project.build.directory}/generated-sources/mybatis-generator
overwrite ${mybatis.generator.overwrite} boolean 如果指定了该参数,如果生成的java文件存在已经同名的文件,新生成的文件会覆盖原有的文件。 如果没有指定该参数,如果存在同名的文件,MBG会给新生成的代码文件生成一个唯一的名字(例如: MyClass.java.1, MyClass.java.2 等等)。 重要: 生成器一定会自动合并或覆盖已经生成的XML文件。默认值:false
sqlScript ${mybatis.generator.sqlScript} java.lang.String 要在生成代码之前运行的 SQL 脚本文件的位置。 如果空,不会执行任何脚本。 如果不是空,jdbcDriver,jdbcURL 参数必须提供。 另外如果连接数据库需要认证也需要提供 jdbcUserId 和 jdbcPassword 参数。值可以使一个文件系统的绝对路径或者是一个使用"classpath:"开头放在构建的类路径下的路径。
tableNames ${mybatis.generator.tableNames} java.lang.String 如果指定了该参数,逗号隔开的这个表会被运行, 这些表名必须和 <table> 配置中的表面完全一致。只有指定的这些表会被执行。 如果没有指定该参数,所有的表都会被执行。 按如下方式指定表明: tableschema.tablecatalog..table等等。
verbose ${mybatis.generator.verbose} boolean 如果指定该参数,执行过程会输出到控制台。

targetProject 解释

与Maven运行时 生成器 配置的 targetProject 属性有不同的解释。 如果指定值为"MAVEN" (大小写敏感), targetProject 将被设置为插件的输出目录,而且如果不存在这个目录,将会创建这个目录。 如果没有设置为 "MAVEN", 那么targetProject 将会被 MGB 当成普通的 - 它必须是一个已经存在的目录。

相关文章

网友评论

      本文标题:Maven工程下mybatis-generator的使用

      本文链接:https://www.haomeiwen.com/subject/tmjwuxtx.html