Mybatis代码生成器Mybatis-Generator使用详解( 四 )


exampleTargetPackage
生成的伴随实体类的Example类的包名
-
-
exampleTargetProject
生成的伴随实体类的Example类文件相对于项目(根目录)的位置
-
-
immutable
是否不可变
false
如果为true , 则不会生成Setter方法 , 所有字段都使用final修饰 , 提供一个带有所有字段属性的构造函数
rootClass
为生成的实体类添加父类
-
通过value指定父类的全类名即可
trimStrings
Setter方法是否对字符串类型进行一次trim操作
false
-
javaClientGenerator标签<javaClientGenerator>标签是<context>的子标签 , 主要用于控制Mapper接口的代码生成行为 。它支持的属性如下:
属性
功能描述
是否必须
备注
type
Mapper接口生成策略
Y
<context>标签的targetRuntime属性为MyBatis3DynamicSql或者MyBatis3Kotlin时此属性配置忽略
targetPackage
生成的Mapper接口的包名
Y
例如club.throwable.mapper
targetProject
生成的Mapper接口文件相对于项目(根目录)的位置
Y
例如src/main/java
type属性的可选值如下:

  • ANNOTATEDMAPPER:Mapper接口生成的时候依赖于注解和SqlProviders(也就是纯注解实现) , 不会生成XML映射文件 。
  • XMLMAPPER:Mapper接口生成接口方法 , 对应的实现代码生成在XML映射文件中(也就是纯映射文件实现) 。
  • MIXEDMAPPER:Mapper接口生成的时候复杂的方法实现生成在XML映射文件中 , 而简单的实现通过注解和SqlProviders实现(也就是注解和映射文件混合实现) 。
注意两点:
  • <context>标签的targetRuntime属性指定为MyBatis3Simple的时候 , type只能选用ANNOTATEDMAPPER或者XMLMAPPER 。
  • <context>标签的targetRuntime属性指定为MyBatis3的时候 , type可以选用ANNOTATEDMAPPER、XMLMAPPER或者MIXEDMAPPER 。
<javaClientGenerator>标签支持0或N个<property>标签 , <property>的可选属性有:
property属性
功能描述
默认值
备注
enableSubPackages
是否允许通过Schema生成子包
false
如果为true , 例如包名为club.throwable , 如果Schema为xyz , 那么Mapper接口文件最终会生成在club.throwable.xyz目录
useLegacyBuilder
是否通过SQL Builder生成动态SQL
false
 
rootInterface
为生成的Mapper接口添加父接口
-
通过value指定父接口的全类名即可
sqlMapGenerator标签<sqlMapGenerator>标签是<context>的子标签 , 主要用于控制XML映射文件的代码生成行为 。它支持的属性如下:
属性
功能描述
是否必须
备注
targetPackage
生成的XML映射文件的包名
Y
例如mappings
targetProject
生成的XML映射文件相对于项目(根目录)的位置
Y
例如src/main/resources
<sqlMapGenerator>标签支持0或N个<property>标签 , <property>的可选属性有:
property属性
功能描述
默认值
备注
enableSubPackages
是否允许通过Schema生成子包
false
-
plugin标签<plugin>标签是<context>的子标签 , 用于引入一些插件对代码生成的一些特性进行扩展 , 该标签只包含一个type属性 , 用于指定
org.mybatis.generator.api.Plugin接口的实现类 。内置的插件实现见Supplied Plugins 。例如:引入org.mybatis.generator.plugins.SerializablePlugin插件会让生成的实体类自动实现java.io.Serializable接口并且添加serialVersionUID属性 。
table标签<table>标签是<context>的子标签 , 主要用于配置要生成代码的数据库表格 , 定制一些代码生成行为等等 。它支持的属性众多 , 列举如下:
属性
功能描述
是否必须
备注
tableName
数据库表名称
Y
例如t_order
schema
数据库Schema
N
-
catalog
数据库Catalog
N
-
alias
表名称标签
N


推荐阅读