<table> 元素

<table> 元素用来从内省数据库中选择一个表。选定的表会生成如下的这些对象:

  • 一个 MyBatis/iBATIS 格式的SQL映射文件
  • 一组根据表生成的"model"类:
    • 一个和表的主键匹配的类(如果表有主键)。
    • 一个包含了非主键字段和BLOB字段的类,如果存在主键类,这个类就会继承主键类。
    • 如果表中包含BLOB字段,就会有一个包含了BLOB字段的类。这个类会根据表的配置继承上面的一个或两个类。
    • 一个用于不同的"by example"方法(selectByExample, deleteByExample)生成动态查询条件的类。
  • (可选) 一个DAO接口或者类

这个元素是<context>元素的一个至少存在一个的必选子元素。 您可以指定不限制数量的table元素。

数据库标识符

MyBatis Generator (MBG) 试图自动处理数据库标识符的大小写敏感性。 在大多数情况下,无论您是否设置catalog, schematableName 属性,MBG都能找到表。 MBG的处理过程遵循以下步骤:

  1. 如果 catalog, schematableName 属性包含空格,MBG将会根据指定的精确的情况查找。 在这种(包含空格)情况下,MBG将会自动分割生成SQL中表的标识符。
  2. 如果数据库记录是以大写形式存储的标识符,MGB会自动将任何表的标识符转换为大写。
  3. 如果数据库记录是以小写形式存储的标识符,MGB会自动将任何表的标识符转换为小写。
  4. 其他情况,MBG根据指定的精确的情况查找。

在大多数情况下,这种处理很完美。然而,在某些情况下它会失败。 例如,假设您创建了这样的一个表:

  create table "myTable" (
     ...some columns
  )

因为表名可以用分隔符,即使数据库把标识符存储为大写,大部分的数据库会根据精确指定的表名来生成表。 在(上面)这种情况下,您需要在表的配置中指定delimitIdentifiers="true"

必选属性