JAVA实体对象

MyBatis Generator (MBG)根据数据库表字段生成Java类. MBG生成的是简单实体对象而非带业务逻辑的实体对象(详见设计理念介绍).MBG根据表特性和配置生成不同类型的实体对象.

MBG生成字段和方法时包含JavaDoc标签 @mbggenerated.运行Eclipse插件时,MBG会将每个Java对象中的JavaDoc标签删除或替换.其他地方不会发生变化. 在这种情况下,您在Java类中添加的字段和方法就不用担心丢失--不包括包含了JavaDoc@mbggenerated标签部分内容.

离开Eclipse插件,您需要手动合并Java文件,但是使用JavaDoc的@mbggenerated标签用来了解删除以前版本的文件是否安全.

以下描述生成不同的实体对象.MBG根据<context>defaultModelType属性(支持conditional、flat、hierarchical三个值)和<table>modelType(此属性用于覆盖默认的defaultModelType)属性配置生成不同的实体对象.

任何字段配置了<ignoreColumn>,自动生成时不会添加到Java对象中.

注意: 下面描述中"BLOB"指任何列的BLOB数据类型包括BLOB, CLOB, LONGVARCHAR, 和 LONGVARBINARY.

主键类

主键类在表中包含一个主键的字段属性. (MBG)根据表列明自动生成属性名称.自动生成的属性名称可以配置&lt;columnOverride&gt;属性覆盖.

类名默认情况是?TableName?Key,如果&lt;table&gt;配置了domainObjectName属性那么类名是?domainObjectName?Key.

如果表中存在一个字段的主键将会生成hierarchical类型实体对象. 如果表中存在多列组合主键将会生成conditional类型实体对象.主键类是不会生成flat类型实体对象 model.

记录类

主键类在表中不包含主键、BLOB的字段属性. 如果只有一个主键记录类将继承主键类. (MBG)根据表列明自动生成属性名称.自动生成的属性名称可以配置&lt;columnOverride&gt;属性覆盖.

类名默认情况是?TableName?,如果&lt;table&gt;配置了domainObjectName属性那么类名是?domainObjectName?配置的值.

如果表中不存在组合主键、BLOB列将生成hierarchical类型实体对象.如果表中不存一个字段的主键、BLOB列或只有一个主键或者一个BLOB列将生成conditional类型实体对象.记录类常常生成flat类型实体对象.

BLOB记录类

BLOB记录类在表中包含BLOB字段属性. 如果表中只存在一个字段该类将继承基础类, 或将继承主键类(注意:MBG不支持表中只包含BLBO列). (MBG)根据表列明自动生成属性名称.自动生成的属性名称可以配置&lt;columnOverride&gt;属性覆盖.

BLOB记录类调用selectByPrimaryKeyselectByExampleWithBLOBs方法返回BLOB字段值.

类名默认情况是?TableName?WithBLOBs,如果&lt;table&gt;配置了domainObjectName属性那么类名是?domainObjectName?WithBLOBs.

如果表中存在一个BLOB列将生成hierarchical类型实体对象. 如果表中存在多个BLOB列将生成conditional类型实体对象.BLOB记录类是不会生成flat类型实体对象.

Example类

Example类用来处理MBG动态查询功能. Example类设置条件用于动态WHERE子句下列方法中:

  • selectByExample
  • selectByExampleWithBLOBs
  • deleteByExample
  • countByExample
  • updateByExample

Example类不继承任何实体对象.

类名默认情况是?TableName?Example,如果&lt;table&gt;配置了domainObjectName属性那么类名是?domainObjectName?Example.

如果方法被启动Example类将生成任何*ByExample方法.注意:如果表中有非常多的字段该类可能很大,但 DAO生成的XML是比较小的. 如果您不需要使用动态WHERE子句,您可以禁用生成这些方法.

详见Example类使用说明了解详情.

results matching ""

    No results matching ""