🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# <generatedKey> 元素 <generatedKey> 元素用来指定自动生成主键的属性(identity字段或者sequences序列)。 如果指定了这个元素,MyBatis Generator (MBG)会在生成insert的SQL映射文件中插入一个合适的 <selectKey> 元素。 这个元素是 [<table>](table.html) 元素的一个可选的子元素。 ## 必选属性 | 属性 | 描述 | | --- | --- | | column | 生成列的列名。 | | sqlStatement | 将返回新值的 SQL 语句。如果这是一个identity列,您可以使用其中一个预定义的的特殊值。 或者为您的数据库使用一个合适的语句。 预先定义好的特殊值如下: | | | Cloudscape 这将转化为: `VALUES IDENTITY_VAL_LOCAL()` | | | DB2 这将转化为: `VALUES IDENTITY_VAL_LOCAL()` | | | DB2_MF 这将转化为:`SELECT IDENTITY_VAL_LOCAL() | | | FROM SYSIBM.SYSDUMMY1`为运行在zOS(主框架)或者有些情况是iSeries (AS/400)上的DB2数据库使用该值 | | | Derby 这将转化为: `VALUES IDENTITY_VAL_LOCAL()` | | | HSQLDB 这将转化为: `CALL IDENTITY()` | | | Informix 这将转化为: `select dbinfo('sqlca.sqlerrd1') from systables where tabid=1` | | | MySql 这将转化为: `SELECT LAST_INSERT_ID()` | | | SqlServer 这将转化为: `SELECT SCOPE_IDENTITY()` | | | SYBASE 这将转化为: `SELECT @@IDENTITY` | | | JDBC 这会配置MBG使用MyBatis3支持的JDBC标准的生成key来生成代码。 这是一个独立于数据库获取标识列中的值的方法。| | | **重要:** 只有当目标运行为MyBatis3时才会产生正确的代码。 如果与iBATIS2一起使用目标运行时会产生运行时错误的代码。 | ## 可选属性 | 属性 | 描述 | | --- | --- | | identity | 当设置为 `true` 时,该列会被标记为identity列, 并且 `<selectKey>` 元素会被插入在insert后面。 当设置为 `false` 时, `<selectKey>` 会插入到insert之前(通常是序列)。**重要:** 即使您 `type` 属性指定为"post", 您仍然需要为 identity 列将该参数设置为 "true"。 这将标志MBG从插入列表中删除该列。默认值是 _false_. | | type | 如果指定,则此值将被添加为生成selectKey元素的类型。 此属性的值应该是"pre"或"post"。**重要:** 如果指定此属性的值,然后生成selectKey元素将永远被放置在insert语句之前。 | ## 子元素 无