博客
关于我
MyBatis学习总结(25)——Mybatis Generator generatorConfig.xml配置文件详细说明
阅读量:796 次
发布时间:2023-02-09

本文共 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 映射文件。配置文件中的每一个配置项都对生成的结果产生直接影响,合理配置能够显著提升开发效率。

转载地址:http://nyffk.baihongyu.com/

你可能感兴趣的文章
matlab ga遗传算法,matlab遗传算法ga函数
查看>>
MATLAB GUI如何生成.exe文件
查看>>
matlab minboundrect,matlab 二值图像 求白色区域最小外接矩阵 长宽
查看>>
Matlab save load
查看>>
MATLAB 在大规模数据分析和处理中的性能优化策略有哪些?
查看>>
matlab 数字水印技术,数字水印技术DCT算法MATLAB源代码.doc
查看>>
matlab 线型_Matlab自动导出论文插图 「实用技巧」
查看>>
MATLAB-Scatter3-三维散点图投影至XYZ三个平面
查看>>
matlab中APP介绍-ChatGPT4o作答
查看>>
matlab中cat函数详解-ChatGPT4o作答
查看>>
matlab中CNN的使用详解-ChatGPT4o作答
查看>>
Matlab中imshow()函数的使用
查看>>
Matlab中save与load函数的使用
查看>>
matlab中如何进行优化问题求解-ChatGPT4o作答
查看>>
matlab中怎么样算距离,MATLAB 距离计算
查看>>
matlab利用guide编写简单计算器界面
查看>>
matlab功率谱_EEG信号alpha波beta波等的谱密度实现(1)-原理
查看>>
matlab图的连通性算法,matlab判别图的连通性.doc
查看>>
MATLAB如何固定text在图中的相对位置
查看>>
Matlab安装
查看>>