generatorConfig.xml

本文介绍如何使用MyBatis Generator工具自动生成基于MyBatis框架的Java持久层代码,包括配置文件详解、数据库连接设置及生成代码的具体选项。
<?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>
    <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
    <classPathEntry  location="D:\apache-maven-3.5.3-bin\apache-maven-3.5.3\repository\mysql\mysql-connector-java\5.1.30\mysql-connector-java-5.1.30.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            <!-- 是否去除自动生成的注释 true:是 : false:-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--数据库链接URL,用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://localhost:8080/sqltest" userId="root" password="lwd***">
        </jdbcConnection>
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>
        <!-- 生成模型的包名和位置-->
        <javaModelGenerator targetPackage="com.example.demo.pojo" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <!-- 生成映射文件的包名和位置-->
        <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <!-- 生成DAO的包名和位置-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.demo.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
        <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
    </context>
</generatorConfiguration>
### 正确配置和使用 `generatorConfig.xml` 文件的方法 #### 配置结构概述 `generatorConfig.xml` 是 MyBatis Generator (MBG) 的核心配置文件,用于定义数据库表到 Java 实体类和其他相关代码的映射规则。该文件主要由 `<generatorConfiguration>` 根元素及其子元素组成[^2]。 #### 主要配置项说明 1. **引入外部属性文件** 使用 `<properties>` 元素可以指定一个外部属性文件路径,从而简化配置并提高可维护性。例如: ```xml <properties resource="db.properties"/> ``` 这样可以通过 `${propertyName}` 的方式引用属性文件中的值[^3]。 2. **JDBC 数据库连接信息** 在 `<context>` 下的 `<jdbcConnection>` 中配置 JDBC 信息,这是访问数据库的关键部分。以下是示例配置: ```xml <jdbcConnection driverClass="${driver}" connectionURL="${url}" userId="${username}" password="${password}"> </jdbcConnection> ``` 3. **目标项目目录 (`targetProject`)** 定义生成的 Java 文件存储位置以及包名前缀。例如: ```xml <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaModelGenerator> ``` 4. **SQL 映射文件生成器** 如果需要生成 SQL 映射文件,则需配置 `<sqlMapGenerator>` 和 `<ibatorContext>` 等相关内容。例如: ```xml <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> </sqlMapGenerator> ``` 5. **Java Client 生成器** 可选地生成 DAO 或 Mapper 接口实现类: ```xml <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java"> </javaClientGenerator> ``` 6. **表选择与列覆盖规则** 使用 `<table>` 元素来指定哪些表参与生成操作,并可通过 `<columnOverride>` 自定义字段名称或其他细节。例如: ```xml <table tableName="users" domainObjectName="User"> <columnOverride column="id" property="userId" javaType="int"/> </table> ``` 7. **插件扩展支持** MBG 支持通过自定义插件增强功能,比如修改默认行为或增加额外逻辑。例如: ```xml <plugin type="org.mybatis.generator.plugins.SerializablePlugin"/> ``` 8. **运行生成过程** 当完成上述所有必要配置之后,可以选择 Maven 插件或者命令行工具执行生成任务。如果采用的是 Maven 方式,则只需按照如下步骤操作即可[^1]: - 设置好对应的 POM 文件; - 执行类似于 `mvn mybatis-generator:generate` 命令启动流程; --- #### 示例完整的 `generatorConfig.xml` 下面提供了一个较为全面的例子供参考: ```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="db.properties"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- 添加注释 --> <commentGenerator> <property name="suppressAllComments" value="true"/> </commentGenerator> <!-- 数据库链接 --> <jdbcConnection driverClass="${driver}" connectionURL="${url}" userId="${username}" password="${password}"/> <!-- Model 类生成 --> <javaModelGenerator targetPackage="com.example.domain" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaModelGenerator> <!-- Mapper XML 文件生成 --> <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"> </sqlMapGenerator> <!-- Mapper Interface 生成 --> <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java"> </javaClientGenerator> <!-- 表配置 --> <table tableName="orders" domainObjectName="Order"> <columnOverride column="order_id" property="orderId" jdbcType="INTEGER"/> </table> </context> </generatorConfiguration> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值