Mybatis Generator:如何为指定的模式生成所有表

时间:2018-02-24 15:23:18

标签: mybatis mybatis-generator

Mysql数据库完全有4个模式,我只想生成一个名为'booking'的指定模式。但它总是为所有模式生成所有表。所以我需要你的帮助。下面是我的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>
    <context id="MySqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/booking?useSSL=false"
                        userId="root"
                        password="123456">
        </jdbcConnection>

        <javaModelGenerator targetPackage="com.clycle.booking.entity" targetProject="C:\Users\a243903\projects\booking\webapi\src\main\java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <sqlMapGenerator targetPackage="entity-mapper"  targetProject="C:\Users\a243903\projects\booking\webapi\src\main\resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <javaClientGenerator type="XMLMAPPER" targetPackage="dao"  targetProject="C:\Users\a243903\projects\booking\webapi\src\main\java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <table schema="booking" tableName="%">
        </table>

    </context>
</generatorConfiguration>

2 个答案:

答案 0 :(得分:4)

  1. 使您的表格配置如下所示:<table tableName="%"/>
  2. <property name="nullCatalogMeansCurrent" value=true" />
  3. 下添加<jdbcConnection>

    有关详细信息,请参阅此参考页:http://www.mybatis.org/generator/usage/mysql.html

答案 1 :(得分:0)

您应该像这样重写您的generatorConfig.xml:

<table tableName="yourTableName" domainObjectName="JavaBeanName"
   enableCountByExample="false" 
   enableUpdateByExample="false"
   enableDeleteByExample="false" 
   enableSelectByExample="false"
   selectByExampleQueryId="false" 
   enableDeleteByPrimaryKey="false"
   enableInsert="false" 
   enableUpdateByPrimaryKey="false">
</table>

如果使用MySQL,关键点是:
{属性名称=“ nullCatalogMeansCurrent”值=“ true”}
参考:http://www.mybatis.org/generator/usage/intro.html


    <jdbcConnection
            driverClass="${driverClassName}"
            connectionURL="${url}"
            userId="${username}"
            password="${password}">
        <property name="nullCatalogMeansCurrent" value="true" />
    </jdbcConnection>

例如:


<generatorConfiguration>
<properties resource="mybatis-generator/generator.properties"></properties>
<classPathEntry location="${driverLocation}"/>
<context id="default" targetRuntime="MyBatis3">
    <commentGenerator>
        <property name="suppressDate" value="true"/>
        <property name="suppressAllComments" value="true"/>
    </commentGenerator>

    <jdbcConnection
            driverClass="${driverClassName}"
            connectionURL="${url}"
            userId="${username}"
            password="${password}">
       **<property name="nullCatalogMeansCurrent" value="true" />**
    </jdbcConnection>

    <javaTypeResolver>
        <property name="forceBigDecimals" value="false"/>
    </javaTypeResolver>

    <javaModelGenerator targetPackage="com.entity" targetProject="src/main/java">

        <property name="enableSubPackages" value="true"/>
    </javaModelGenerator>


    <sqlMapGenerator targetPackage="com.daoMappers" targetProject="src/main/resources">
        <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>


    <javaClientGenerator targetPackage="com.dao" targetProject="src/main/java" type="XMLMAPPER">
        <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>


    <table tableName="student" domainObjectName="Student"
           enableCountByExample="false" 
           enableUpdateByExample="false"
           enableDeleteByExample="false" 
           enableSelectByExample="false"
           selectByExampleQueryId="false" 
           enableDeleteByPrimaryKey="false"
           enableInsert="false" 
           enableUpdateByPrimaryKey="false">
    </table>
</context>

请注意那些应该由您自己设置


<properties resource="mybatis-generator/generator.properties"></properties>
<classPathEntry location="${driverLocation}"/>

generator.properties 的文件编码如下:


driverClassName=com.mysql.cj.jdbc.Driver

driverLocation=/Users/mac/.m2/repository/mysql/mysql-connector-java/6.0.6/mysql-connector-java-6.0.6.jar

url=jdbc:mysql://localhost:3306/student?useSSL=false&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&autoReconnect=true
username=xxx
password=xxx