MyBatis代码生成器——MyBatis Generator,缩写为MBG
MBG的XML文件头
文件头中的mybatis-generator-config_1_0.dtd用于定义该配置文件中的所有标签和属性的用法及限制,在文件头之后,需要写文件的根节点generatorConfiguration。
下面介绍generatorConfiguration标签下的3个子标签,分别是properties、classPathEntry和context。在配置这3个标签的时候,必须注意他们的顺序,必须和列举的顺序一致。
1.properties标签
用来指定外部的属性元素,最多可以配置1个,也可以不配置。properties也可用来指定一个需要在配置中解析使用的外部属性文件,引入属性文件后,可以在配置中使用${property}这种形式引用,通过这种方式引用属性文件中的属性值,对于配置JDBC信息会很有用。
properties标签包含resource和url两个属性,但是只能使用其中一个属性来指定,同时使用则会报错。
(1)resource:指定classpath下的属性文件,例如:com/test/database.properties这样的属性值。
(2)url:指定文件系统上的特定位置,例如:file:///D:/com/test/database.properties。
2.classPathEntry标签
这个标签可以配置多个,也可以不配置。最常见的用法就是通过属性location指定驱动的路径,例如:
3.context标签
该标签至少配置1个,也可以配置多个。context标签用于指定生成一组对象的环境。例如要指定连接的数据库,要生成对象的类型和要处理的数据库中的表。运行MBG的时候还可以指定要运行的context。
context标签只有一个必选属性id,用来唯一确定该标签,该id属性可以在运行MBG时使用。此外还有几个属性可选。
(1)defaultModelType:这个属性很重要,定义了MBG如何生成实体类。该属性有以下可选值。
1)conditional:默认值,和下面的hierarchical类似,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,而是会将该字段合并到基本实体类中。
2)flat:该模型只为每张表生成一个实体类。这个实体类包含表中的所有字段,这种模型最简单,推荐使用。
3)hierarchical:如果表有主键,那么该模型会产生一个单独的主键实体类,如果表中还有BLOB字段,则会为表生成一个包含所有BLOB字段的单独的实体类,然后为其他的字段另外生成一个单独的实体类。MBG会在所有生成的实体类之间维护一个继承关系。
(2)targetRuntime:此属性用于指定生成的代码的运行时环境,有以下可选值。
1)MyBatis3:默认值。
2)MyBatis3Simple:这种情况不会生成与Example相关的方法。
(3)introspectedColumnImpl:该参数可以指定扩展org.mybatis.generator.api.Introspected Column类的实现类。一般情况下,使用如下配置即可。
如果不希望生成和Example查询有关的内容,则可以按照如下配置
MBG配置中的其他几个标签基本上都是context的子标签,这些子标签(有严格的配置顺序,后面的括号中的内容为这些标签可以配置的个数)包括以下几个。
● property(0个或多个)
● plugin(0个或多个)
● commentGenerator(0个或1个)
● jdbcConnection(1个)
● javaTypeResolver(0个或1个)
● javaModelGenerator(1个)
● sqlMapGenerator(0个或1个)
● javaClientGenerator(0个或1个)
● table(1个或多个)
文章到此结束,希望对大家有所帮助!