<context>
标签
<context>
标签用于指定生成一组对象的环境,通过其子标签可以指定要映射的表,数据库连接、要生成的对象类型;如果要连接多个数据库,或者配置多组不同的生成参数,可以在<generatorConfiguration>
标签中使用多个<context>
标签。
必须的属性
- id:context的唯一标识,用于在错误信息的时候提示;
可选属性
- defaultModelType:生成模式,可选的值:
- flat:生成 扁平化的类,主键、BLOB、其他简单字段都生成在一个类当中
- hierarchical: 生成层次结构的类,主键、BLOB、简单字段分辨创建3个类来放置,对于blob会提供”with BLOBs”和”without BLOBs”方法 ;
- conditional:默认值,如果只有一个主键,主键和简单字段在一个类中;否则跟hierarchical类似;
- targetRuntime:指定自动生成代码的运行时目标:
- MyBatis3:默认值,支持mybatis3以上、jse5以上,生成”by example”方法
- MyBatis3Simple:支持mybatis3、jse5以上,不生成”by example”方法
- MyBatis3DynamicSql:支持mybatis3.4.2、java8以上、依赖”MyBatis Dynamic SQL”库,当选择此项:
- ”defaultModelType”属性将被忽略为”flat”模式,
<javaClientGenerator>
标签中的type将被忽略为annotated
- 不会生成xml的map文件,同时
<sqlMapGenerator>
标签将被忽略 - MyBatis Dynamic SQL supports table aliases in a “per query” manner rather than the “all or nothing” manner of the other runtimes,因此表别名将被忽略
- Ibatis2Java2:支持mybatis 2.2.0(不支持3.0以上)、jse2以上
- Ibatis2Java5:支持mybatis 2.2.0(不支持3.0以上)、jse5以上
你也可以扩展org.mybatis.generator.api.IntrospectedTable
类来实现自己的代码生成器,想要了解更多:Extending MyBatis Generator
- introspectedColumnImpl:指定一个继承了
org.mybatis.generator.api.IntrospectedColumn
的类,用于在处理列信息时自定义代码生成器的行为。
子标签
<property>
(0..N)<plugin>
(0..N)<commentGenerator>
(0 or 1)<connectionFactory>
(either connectionFactory or jdbcConnection is Required)<jdbcConnection>
(either connectionFactory or jdbcConnection is Required)<javaTypeResolver>
(0 or 1)<javaModelGenerator>
(1 Required)<sqlMapGenerator>
(0 or 1)<javaClientGenerator>
(0 or 1)<table>
(1..N)
支持的Properties
这些属性需要定义在<property>
子标签中
- autoDelimitKeywords:如果使用了sql的关键字作为数据对象名,为了避免出错,自动为数据对象名添加界定符,比如ORACLE就是双引号,MYSQL默认是
反引号;关键字列表可以查看
org.mybatis.generator.internal.db.SqlReservedWords`;默认值false。 - beginningDelimiter:定义开始界定符,默认是双引号(“)
- endingDelimiter:定义结束界定符,默认是双引号(“)
- javaFileEncoding:指定生成的java文件的编码,例如:
<property name="javaFileEncoding" value="UTF-8"/>
,通过java.nio.charset.Charset
可以查看支持的编码类型 - javaFormatter:指定代码格式化器,接受一个全限定性类名,这个类必须实现’org.mybatis.generator.api.XmlFormatter’接口,并且必须有默认构造器,在一个context中此类将以单例的方式被调用;默认格式化器:
org.mybatis.generator.api.dom.DefaultXmlFormatter
; - xmlFormatter:与javaFormatter类似,这个是用来格式化xml代码的,必须实现
org.mybatis.generator.api.XmlFormatter
接口,默认的格式化器:org.mybatis.generator.api.dom.DefaultXmlFormatter