
本文共 3107 字,大约阅读时间需要 10 分钟。
MyBatis Generator(MBG)是一款强大的工具,能够自动化地根据数据库表结构生成Java类和SQL映射文件。本文将详细介绍MyBatis Generator的配置文件中的一些关键设置和优化项。
1. 上下文配置
在 <context>
标签中,我们可以指定生成模型的环境和默认模型类型。以下是常用的配置项:
-
defaultModelType
:指定生成对象的样式。- 1:类似层级化结构,主键会生成一个独立的
Key
对象。 - 2:所有内容(包括主键、BLOB)都生成在一个对象中。
- 3:主键生成一个
XXKey
对象,BLOB等单独生成一个对象,其他属性生成在一个对象中。
- 1:类似层级化结构,主键会生成一个独立的
-
targetRuntime
:指定生成模型的目标运行时环境。- 1:MyBatis 3,默认值,生成基于MyBatis 3.x以上版本的内容,包括
XXXBySample
。 - 2:MyBatis 3 Simple,类似MyBatis 3,但不会生成
XXXBySample
。
- 1:MyBatis 3,默认值,生成基于MyBatis 3.x以上版本的内容,包括
2. 数据库连接配置
在 <jdbcconnection>
标签中,配置数据库驱动和连接信息。以下是常用的配置项:
-
driverclass
:数据库驱动类路径。- 示例:
com.mysql.jdbc.Driver
- 示例:
-
connectionurl
:数据库连接 URL。- 示例:
jdbc:mysql:///pss
- 示例:
-
userid
和password
:数据库用户 ID 和密码。
3. Java 类型处理
在 <javatyperesolver>
标签中,指定数据库字段类型到 Java 类型的映射规则。以下是常用的配置项:
-
type
:指定类型处理器的全限定名,默认使用JavaTypeResolverDefaultImpl
。- 示例:
org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl
- 示例:
-
forceBigDecimals
:强制将DECIMAL
和NUMERIC
数据类型映射为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 接口类型。- 1:
ANNOTATEDMAPPER
,生成使用 Mapper 接口和注解的方式创建。 - 2:
MIXEDMAPPER
,生成混合配置,包含 Mapper 接口和注解。 - 3:
XMLMAPPER
,生成基于 XML 的 Mapper 接口。
- 1:
-
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 映射文件。配置文件中的每一个配置项都对生成的结果产生直接影响,合理配置能够显著提升开发效率。
发表评论
最新留言
关于作者
