MyBatis学习总结(25)——Mybatis Generator generatorConfig.xml配置文件详细说明
发布日期:2025-04-14 07:47:21 浏览次数:11 分类:精选文章

本文共 3107 字,大约阅读时间需要 10 分钟。

MyBatis Generator(MBG)是一款强大的工具,能够自动化地根据数据库表结构生成Java类和SQL映射文件。本文将详细介绍MyBatis Generator的配置文件中的一些关键设置和优化项。

1. 上下文配置

<context> 标签中,我们可以指定生成模型的环境和默认模型类型。以下是常用的配置项:

  • defaultModelType:指定生成对象的样式。

    • 1:类似层级化结构,主键会生成一个独立的 Key 对象。
    • 2:所有内容(包括主键、BLOB)都生成在一个对象中。
    • 3:主键生成一个 XXKey 对象,BLOB等单独生成一个对象,其他属性生成在一个对象中。
  • targetRuntime:指定生成模型的目标运行时环境。

    • 1:MyBatis 3,默认值,生成基于MyBatis 3.x以上版本的内容,包括 XXXBySample
    • 2:MyBatis 3 Simple,类似MyBatis 3,但不会生成 XXXBySample

2. 数据库连接配置

<jdbcconnection> 标签中,配置数据库驱动和连接信息。以下是常用的配置项:

  • driverclass:数据库驱动类路径。

    • 示例:com.mysql.jdbc.Driver
  • connectionurl:数据库连接 URL。

    • 示例:jdbc:mysql:///pss
  • useridpassword:数据库用户 ID 和密码。

3. Java 类型处理

<javatyperesolver> 标签中,指定数据库字段类型到 Java 类型的映射规则。以下是常用的配置项:

  • type:指定类型处理器的全限定名,默认使用 JavaTypeResolverDefaultImpl

    • 示例:org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl
  • forceBigDecimals:强制将 DECIMALNUMERIC 数据类型映射为 BigDecimal

    • 示例:false

4. Java 模型生成

<javamodelgenerator> 标签中,指定生成的 Java 类的包和项目路径。以下是常用的配置项:

  • targetpackage:生成的 Java 类所在的包名。

    • 示例:com._520it.mybatis.domain
  • targetproject:生成的 Java 类所在的项目目录。

    • 示例:src/main/java
  • constructorBased:是否为生成的类创建构造方法。

    • 示例:false
  • enableSubPackages:在 targetPackage 的基础上,根据数据库 schema 生成子包。

    • 示例:true
  • immutable:是否生成不可变的类。

    • 示例:false
  • rootClass:指定生成的类继承的根类。

    • 示例:com._520it.mybatis.domain.BaseDomain

5. SQL Map 生成

<sqlmapgenerator> 标签中,指定生成的 SQL Map 文件的包和项目路径。以下是常用的配置项:

  • targetpackage:生成的 SQL Map 文件所在的包名。

    • 示例:com._520it.mybatis.mapper
  • targetproject:生成的 SQL Map 文件所在的项目目录。

    • 示例:src/main/resources
  • enableSubPackages:在 targetPackage 的基础上,根据数据库 schema 生成子包。

    • 示例:true

6. Mapper 接口生成

<javaclientgenerator> 标签中,指定生成的 Mapper 接口类型和包。以下是常用的配置项:

  • type:指定生成的 Mapper 接口类型。

    • 1ANNOTATEDMAPPER,生成使用 Mapper 接口和注解的方式创建。
    • 2MIXEDMAPPER,生成混合配置,包含 Mapper 接口和注解。
    • 3XMLMAPPER,生成基于 XML 的 Mapper 接口。
  • targetpackage:生成的 Mapper 接口所在的包名。

    • 示例:com._520it.mybatis.mapper
  • enableSubPackages:在 targetPackage 的基础上,根据数据库 schema 生成子包。

    • 示例:true

7. 表配置

<table> 标签中,指定要生成的表的信息。以下是常用的配置项:

  • tablename:要生成对象的表名。

    • 示例:userinfo
  • schema:数据库的 schema 名。

    • 示例:mydb
  • catalog:数据库的 catalog 名。

    • 示例:mycatalog
  • domainObjectName:生成的领域对象的名字。

    • 示例:User
  • enableInsert:是否生成插入语句。

    • 示例:true
  • enableSelectByPrimaryKey:是否生成按照主键查询对象的语句。

    • 示例:true
  • enableSelectByExample:是否生成动态查询语句。

    • 示例:true
  • enableUpdateByPrimaryKey:是否生成按照主键修改对象的语句。

    • 示例:true
  • enableDeleteByPrimaryKey:是否生成按照主键删除对象的语句。

    • 示例:true
  • enableDeleteByExample:是否生成动态删除语句。

    • 示例:true
  • enableCountByExample:是否生成动态查询总条数语句。

    • 示例:true
  • enableUpdateByExample:是否生成动态修改语句。

    • 示例:true

8. 列名重命名规则

<columnRenamingRule> 标签中,指定列名的重命名规则。以下是常用的配置项:

  • searchString:列名的搜索字符串。

    • 示例:^CUST_
  • replaceString:替换后的列名。

    • 示例:ID

9. 忽略列

<ignoreColumn> 标签中,指定要忽略的列名。以下是常用的配置项:

  • column:要忽略的列名。
    • 示例:deptId

10. 主键生成规则

<generatedKey> 标签中,指定主键的生成规则。以下是常用的配置项:

  • column:主键的列名。

    • 示例:id
  • sqlStatement:生成的 selectKey SQL 语句。

    • 示例:SELECT LAST_INSERT_ID()(MySQL)

11. 配置优化

<generatorconfiguration> 标签中,可以添加其他配置项,如资源加载地址、依赖包加载路径等。以下是常用的配置项:

  • resource:配置资源加载地址。

    • 示例:com/myproject/generatorConfig.properties
  • url:配置资源加载 URL。

    • 示例:file:///C:/myfolder/generatorConfig.properties
  • location:指定加载 jar/zip 包的路径。

    • 示例:/Program Files/IBM/SQLLIB/java/db2java.zip

总结

通过以上配置,MyBatis Generator 能够根据数据库表结构自动生成高质量的 Java 类和 SQL 映射文件。配置文件中的每一个配置项都对生成的结果产生直接影响,合理配置能够显著提升开发效率。

上一篇:MyBatis学习总结(24)——Mybatis常见问题汇总
下一篇:MyBatis学习总结(26)——Mybatis源码中使用了哪些设计模式?

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年05月20日 00时47分38秒