mybatis 逆向工程生成配置

Exisi 2022-09-28 15:49:06
Categories: Tags:

<build>

    <plugins>

        <plugin>

            <groupId>org.mybatis.generator</groupId>

            <artifactId>mybatis-generator-maven-plugin</artifactId>

            <version>1.4.0</version>

            <configuration>

                <!--mybatis的代码生成器的配置文件-->

                <configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile>

                <!--允许覆盖生成的文件-->

                <overwrite>true</overwrite>

                <!--将当前pom的依赖项添加到生成器的类路径中-->

                <includeCompileDependencies>true</includeCompileDependencies>

            </configuration>

        </plugin>

    </plugins>    

</build>

 

 

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

 

    <!--JDBC驱动jar包的位置-->

    <classPathEntry location="C:/workspace/project/learning/mybatis/lib/mysql-connector-java-5.1.6.jar"/>

 

    <context id="default" targetRuntime="MyBatis3">

 

        <!--创建Java类时是否取消生成注释-->

        <commentGenerator>

            <property name="suppressDate" value="true"/>

            <property name="suppressAllComments" value="true"/>

        </commentGenerator>

 

        <!--JDBC数据库连接-->

<jdbcConnection driverClass="${spring.datasource.driverClassName}"

                connectionURL="${spring.datasource.url}"

                userId="${spring.datasource.username}"

                password="${spring.datasource.password}">

    <!--高版本的 mysql-connector-java 需要设置 nullCatalogMeansCurrent=true-->

    <property name="nullCatalogMeansCurrent" value="true"/>

</jdbcConnection>

 

        <!--

        Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example

        targetPackage     指定生成的model生成所在的包名

        targetProject     指定在该项目下所在的路径

        -->

        <javaModelGenerator targetPackage="com.example.project.entity"

                            targetProject="./src/main/java">

            <!-- 是否允许子包,即targetPackage.schemaName.tableName -->

            <property name="enableSubPackages" value="false"/>

            <!-- 是否对model添加构造函数 -->

            <property name="constructorBased" value="true"/>

            <!-- 是否对类CHAR类型的列的数据进行trim操作 -->

            <property name="trimStrings" value="true"/>

            <!-- 建立的Model对象是否 不可改变  即生成的Model对象不会有 setter方法,只有构造方法 -->

            <property name="immutable" value="false"/>

        </javaModelGenerator>

 

        <!--

        mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 

        -->

        <sqlMapGenerator targetPackage="generator"

                         targetProject="./src/main/resources">

            <property name="enableSubPackages" value="false"/>

        </sqlMapGenerator>

 

        <!-- 

        客户端代码,生成易于使用的针对Model对象和XML配置文件的代码

        type="ANNOTATEDMAPPER",生成Java Model和基于注解的Mapper对象

        type="MIXEDMAPPER",生成基于注解的Java Model和相应的Mapper对象

        type="XMLMAPPER",生成SQLMap XML文件和独立的Mapper接口

        -->

        <javaClientGenerator type="XMLMAPPER"

                             targetPackage="com.example.project.mapper"

                             targetProject="./src/main/java">

            <property name="enableSubPackages" value="false"/>

        </javaClientGenerator>

 

 

        <!--tables-->

        <table tableName="author" domainObjectName="Author"

               enableCountByExample="false" enableUpdateByExample="false"

               enableDeleteByExample="false" enableSelectByExample="false"

               selectByExampleQueryId="false">

        </table>

        <table tableName="book" domainObjectName="Book"

               enableCountByExample="false" enableUpdateByExample="false"

               enableDeleteByExample="false" enableSelectByExample="false"

               selectByExampleQueryId="false">

        </table>

 

    </context>

</generatorConfiguration>


运行 mvn mybatis-generator:generate 命令