MyBatis Generator generatorConfig.xml配置详解

本文详细介绍MyBatis Generator配置文件generatorConfig.xml的各部分设置,包括如何指定数据连接、生成实体类、映射文件及DAO接口等。

所有Generator的xml详细说明见:http://mybatis.org/generator/configreference/xmlconfig.html (英文版)


现在针对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="init.properties"/>
	
	<!-- 指定数据连接驱动jar地址 -->
	<classPathEntry location="${classPath}" />
	
	<!-- 一个数据库一个context -->
	<context id="infoGuardian">
		<!-- 注释 -->
		<commentGenerator >
			<property name="suppressAllComments" value="false"/><!-- 是否取消注释 -->
			<property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳-->
		</commentGenerator>
		
		<!-- jdbc连接 -->
		<jdbcConnection driverClass="${jdbc_driver}"
			connectionURL="${jdbc_url}" userId="${jdbc_user}"
			password="${jdbc_password}" />
		
		<!-- 类型转换 -->
		<javaTypeResolver>
			<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
			<property name="forceBigDecimals" value="false"/>
		</javaTypeResolver>
		
		<!-- 生成实体类地址 -->	
		<javaModelGenerator targetPackage="com.oop.eksp.user.model"
			targetProject="${project}" >
			<!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
			<property name="enableSubPackages" value="false"/>
			<!-- 是否针对string类型的字段在set的时候进行trim调用 -->
			<property name="trimStrings" value="true"/>
		</javaModelGenerator>
		
		<!-- 生成mapxml文件 -->
		<sqlMapGenerator targetPackage="com.oop.eksp.user.data"
			targetProject="${project}" >
			<!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
			<property name="enableSubPackages" value="false" />
		</sqlMapGenerator>
		
		<!-- 生成mapxml对应client,也就是接口dao -->	
		<javaClientGenerator targetPackage="com.oop.eksp.user.data"
			targetProject="${project}" type="XMLMAPPER" >
			<!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] -->
			<property name="enableSubPackages" value="false" />
		</javaClientGenerator>
		
		<!-- 配置表信息 -->	
		<table schema="${jdbc_user}" tableName="s_user"
			domainObjectName="UserEntity" enableCountByExample="false"
			enableDeleteByExample="false" enableSelectByExample="false"
			enableUpdateByExample="false">
			<!-- schema即为数据库名 tableName为对应的数据库表 domainObjectName是要生成的实体类 enable*ByExample 
				是否生成 example类   -->
			
			<!-- 忽略列,不生成bean 字段 -->
			<ignoreColumn column="FRED" />
			<!-- 指定列的java数据类型 -->
	      	<columnOverride column="LONG_VARCHAR_FIELD" jdbcType="VARCHAR" />
		</table>

	</context>
</generatorConfiguration>

附带上我的init.properties
#Mybatis Generator configuration
project = EKSP
classPath=E:/workplace/EKSP/WebContent/WEB-INF/lib/ojdbc14.jar
jdbc_driver = oracle.jdbc.driver.OracleDriver
jdbc_url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
jdbc_user=INFOGUARDIAN
jdbc_password=info_idap132

以上是xml的配置基本情况,大家如果有什么疑问或者建议,敬请评论!


### MyBatis Generator `generatorConfig.xml` 文件配置详解 #### 1. 基本结构概述 `generatorConfig.xml` 是 MyBatis Generator (MBG) 的核心配置文件,用于定义生成代码的具体规则和目标。它主要包括以下几个部分:全局设置、数据源连接信息、JDBC 连接器以及具体的上下文(context) 和表(table) 定义。 以下是基本的 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> <!-- 数据库驱动及相关依赖 --> <classPathEntry location="/path/to/your/jdbc_driver.jar"/> <!-- 上下文定义 --> <context id="DB2Tables" targetRuntime="MyBatis3"> <!-- JDBC 连接配置 --> <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC" userId="root" password="password"/> <!-- Java Model 生成器 --> <javaModelGenerator targetPackage="test.model" targetProject="E:\MyProject\src\main\java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- SQL Map 生成器 --> <sqlMapGenerator targetPackage="test.mapper.resources" targetProject="E:\MyProject\src\main\resources"/> <!-- Mapper 接口生成器 --> <javaClientGenerator type="XMLMAPPER" targetPackage="test.mapper" targetProject="E:\MyProject\src\main\java"/> <!-- 表映射 --> <table tableName="users" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"/> </context> </generatorConfiguration> ``` --- #### 2. 关键标签解析 ##### (1)`<context>` 标签 `<context>` 是整个配置的核心节点,表示一组生成逻辑。其主要属性如下: - **id**: 当前 context 的唯一标识符。 - **targetRuntime**: 指定 MBG 的运行环境版本,默认为 `MyBatis3`[^1]。 ##### (2)`<jdbcConnection>` 标签 此标签用于定义数据库连接信息,具体字段含义如下: - **driverClass**: 数据库驱动类名。 - **connectionURL**: 数据库连接 URL。 - **userId/password**: 用户名和密码。 ##### (3)`<javaModelGenerator>` 标签 负责生成实体类(Java Bean),常用属性有: - **targetPackage**: 实体类所在的包路径。 - **targetProject**: 输出目录位置。 - **properties**: 可选配置项,如启用子包分割 (`enableSubPackages`) 或自动去除字符串前后空白字符 (`trimStrings`)。 示例配置见引用[^2]: ```xml <javaModelGenerator targetPackage="test.model" targetProject="E:\MyProject\src\main\java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> ``` ##### (4)`<sqlMapGenerator>` 标签 用于生成 Mapper 映射文件(SQL 脚本)。常见属性包括: - **targetPackage**: 映射文件所在资源包路径。 - **targetProject**: 输出目录。 ##### (5)`<javaClientGenerator>` 标签 定义 Mapper 接口及其对应的实现形式。关键属性解释: - **type**: 支持两种模式——`ANNOTATEDMAPPER`(注解风格)或 `XMLMAPPER`(XML 风格)。 - **targetPackage/targetProject**: 同上。 ##### (6)`<table>` 标签 指定需要生成代码的数据表,支持多种自定义选项: - **tableName**: 数据库中的实际表名。 - **domainObjectName**: 对应的实体类名称。 - **enableXXXByExample**: 是否开启基于条件查询的功能方法。 --- #### 3. 扩展功能介绍 除了基础配置外,还可以通过 `<plugin>` 插入额外功能模块来增强灵活性。例如,在某些场景中可能需要覆盖默认行为或者引入特定工具类。以下是一个简单的插件声明实例: ```xml <context ... > ... <plugin type="org.example.CustomPlugin"> <property name="someProperty" value="value"/> </plugin> ... </context> ``` 此外,如果希望替换内置列处理机制,则可以通过 `introspectedColumnImpl` 属性指定新的实现类。 --- #### 4. Maven 构建集成 当项目采用 Maven 管理时,可通过官方插件简化执行流程[^3]。只需在 `pom.xml` 中添加相应依赖并绑定命令即可完成自动化操作。 --- ### 总结 上述内容涵盖了 `generatorConfig.xml` 的典型用法及高级特性应用技巧。合理调整各组件参数能够显著提升开发效率,满足多样化需求。
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值