MyBatis Generator配置文件context元素的defaultModelType属性
MyBatis Generator配置文件context元素有一个defaultModelType属性,这个属性的值会影响实体类(或叫domain类,model类)的生成。
这个属性用于设置产生的模型类型。模型类型定义了MBG如何去产生模型类。对于一些模型类型,MBG会为每一张表产生单独的实体类,而其他的模型类型,MBG会依据表的结构产生一些不同的实体类。
这个属性支持以下三个值:
conditional
这是默认值
这个模型与hierarchical模型相似,除了如果一个实体类只包含一个字段,则不会单独生成此实体类。因此,如果一个表的主键只有一个字段,那么不会为该字段生成单独的实体类,会将该字段合并到基本实体类中。
flat
该模型为每一张表只生成一个实体类。这个实体类包含表中的所有字段。一般使用这个模型就够了。
hierarchical
如果表有主键,那么该模型会产生一个单独的主键实体类,如果表还有BLOB字段,则会为表生成一个包含所有BLOB字段的单独的实体类,然后为所有其他的字段生成一个单独的实体类。MBG会在所有生成的实体类之间维护一个继承关系。
显然这个模型比较复杂。
IntrospectedTable中的rules属性(接口Rules)中有三个方法:generatePrimaryKeyClass()、generateBaseRecordClass()、generateRecordWithBLOBsClass()控制是否生成三种Model文件。
mybatis提供了三种ModelType: HIERARCHICAL("hierarchical")、FLAT("flat"),CONDITIONAL("conditional");对应三种modelRule:HierarchicalModelRules、FlatModelRules、ConditionalModelRules。
通过在mybatis generator配置文件增加属性defaultModelType=“hierarchical”可以控制不生成PrimarykeyClass。
这种配置会导致只包含联合主键的表不能生成Model,可以通过修改HierarchicalModelRules方法中的generateBaseRecordClass()改为返回true,则可生成对应Model。
分享到:
相关推荐
下面详细说明Mybatis-generator的配置文件generatorConfig.xml中的各个标签以及其作用。 generatorConfiguration:这是Mybatis-generator的根标签,定义了整个生成器的配置。所有的配置信息都是在该标签内定义。 ...
- `<properties>`元素用于定义配置文件中的属性,可以通过`resource`或`url`属性指定属性文件的位置。在MBG工作时,这些属性可以在整个配置文件中被引用。 2. **类路径条目**: - `<classPathEntry>`元素用于指定...
MyBatisGenerator generator = new MyBatisGenerator(config, callback, warnings); generator.generate(null); } } ``` 在SpringBoot项目中,我们还可以利用lombok库来简化Java Bean的代码,减少冗余。只需要在...
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple"> ``` - **id**:上下文ID,用于标识不同的数据库环境或生成策略。 - **defaultModelType**:指定生成对象的样式。 - **...
运行这个主类后,MyBatis Generator会根据配置文件生成对应的Java模型类、Mapper接口、XML配置文件等。这些文件通常会被放置在项目的指定目录下。 通过MyBatis Generator,我们可以快速地为数据库表生成对应的Java...
下面我们将详细解析这个"最完美配置文件"的主要元素和属性。 首先,配置文件的根元素是`<generatorConfiguration>`,它包含了整个MBG的配置信息。在`<generatorConfiguration>`内,我们可以定义`<properties>`来...
在`<generatorConfiguration>`下,我们可以配置`<properties>`元素来加载外部的配置资源,例如`resource`或`url`属性可以指向配置文件的位置,以便在配置文件中引用这些属性。此外,`<classPathEntry>`元素用于指定...
在本文中,我们将深入探讨如何在Spring Boot项目中结合MyBatis框架,使用MyBatis Generator(MBG)插件自动生成数据库模型、Mapper接口和XML配置文件,从而提高开发效率。Spring Boot以其简洁的配置和强大的依赖管理...
<context id="testContext" targetRuntime="MyBatis3" defaultModelType="flat"> <!-- 是否去除自动生成的注释 true:是;false:否 --> <!-- 数据库连接配置 --> connectionURL="jdbc:mysql://localhost...
<context id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple"> <!-- 自动识别数据库关键字,默认false,如果设置为true,根据SqlReservedWords中定义的关键字列表; 一般保留...
在你的项目中创建一个`generatorConfig.xml`配置文件,这是MBG的配置中心。在这里,你可以指定数据库连接信息、需要生成代码的表名,以及生成的代码模板。比如,你可以添加自定义注释到生成的类和方法上: ```xml...