mysql usegeneratedkeys_Mybatis Generator insert useGeneratedKeys keyProperty[通俗易懂]

mysql usegeneratedkeys_Mybatis Generator insert useGeneratedKeys keyProperty[通俗易懂]Mybatis自动生成代码,需要用到mybatisGenerator,详见http://mybatis.github.io/generator/configreference/generatedKey.htmlinsert语句如果要返回自动生成的key值,一般会在insert里加入useGeneratedKeys属性,例如insertintosubtasks(SID,TID,RID,S…

大家好,又见面了,我是你们的朋友全栈君。

Mybatis自动生成代码,需要用到mybatis

Generator,详见http://mybatis.github.io/generator/configreference/generatedKey.html

insert语句如果要返回自动生成的key值,一般会在insert里加入useGeneratedKeys属性,例如

69c5a8ac3fa60e0848d784a6dd461da6.pnginsert into subtasks (SID, TID, RID,

START, INTERVALL, SCHEDULE,

RESULTS, STYLE)

values (#{sid,jdbcType=INTEGER}, #{tid,jdbcType=INTEGER}, #{rid,jdbcType=INTEGER},

#{start,jdbcType=TIMESTAMP}, #{interval,jdbcType=INTEGER}, #{schedule,jdbcType=INTEGER},

#{results,jdbcType=VARCHAR}, #{style,jdbcType=INTEGER})

69c5a8ac3fa60e0848d784a6dd461da6.png

如果要让generator自动添加该功能,可以如下配置:

则通过generator自动生成的Mapper文件里的insert语句则类似如下:

69c5a8ac3fa60e0848d784a6dd461da6.png

SELECT LAST_INSERT_ID()insert into test (TASKID)

values (#{taskid,jdbcType=INTEGER})

69c5a8ac3fa60e0848d784a6dd461da6.png

其中generateKey的sqlStatement属性见下表:

Attribute

Description

column

The column name of the generated column.

sqlStatement

The SQL statement that will return the new value. If this is an

identity column, then you can use one of the predefined special values, or

substitute the proper statement for your database. The predefined special

values are as follows:

Cloudscape

This will translate to: VALUES

IDENTITY_VAL_LOCAL()

DB2

This will translate to: VALUES

IDENTITY_VAL_LOCAL()

DB2_MF

This will translate to:

SELECT IDENTITY_VAL_LOCAL()

FROM SYSIBM.SYSDUMMY1

Use this value for DB2 on zOS (Main Frames) and, in some cases,

iSeries (AS/400)

Derby

This will translate to: VALUES

IDENTITY_VAL_LOCAL()

HSQLDB

This will translate to: CALL IDENTITY()

Informix

This will translate to: select dbinfo(‘sqlca.sqlerrd1‘)

from systables where tabid=1

MySql

This will translate to: SELECT

LAST_INSERT_ID()

SqlServer

This will translate to: SELECT

SCOPE_IDENTITY()

SYBASE

This will translate to: SELECT @@IDENTITY

JDBC

This will configure MBG to generate code for MyBatis3 suport of

JDBC standard generated keys. This is a database independent method

of obtaining the value from identity columns.

Important: This value will only produce

valid code when the target runtime is MyBatis3. If used with iBATIS2

target runtimes it will produce code with runtime

errors.

关于mybatis的mapper文件的xml学习可以参考:http://my.oschina.net/zplswf/blog/63981

其中关于useGeneratedKeys和keyProperty参考下表:

属性

描述

id

在命名空间中唯一的标识符,可以被用来引用这条语句。

parameterType

将会传入这条语句的参数类的完全限定名或别名。

parameterMap

这是引用外部 parameterMap 的已经被废弃的方法。使用内联参数映射和 parameterType 属性。

flushCache

将其设置为 true,不论语句什么时候被带哦用,都会导致缓存被清空。默认值:false。

timeout

这个设置驱动程序等待数据库返回请求结果, 并抛出异常时间的最大等待值。默认不设置(驱动自行处理)。

statementType

STA TEMENT,PREPARED 或 CALLABLE 的一种。这会让 MyBatis 使用选择使用

Statement,PreparedStatement 或 CallableStatement。默认值:PREPARED。

useGeneratedKeys

( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的 getGeneratedKeys

方法来取出由数据(比如:像 MySQL 和 SQL Server 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值:false。

keyProperty

(仅对 insert 有用) 标记一个属性, MyBatis 会通过 getGeneratedKeys 或者通过 insert 语句的

selectKey 子元素设置它的值。默认: 不设置。

keyColumn

(仅对 insert 有用) 标记一个属性, MyBatis 会通过 getGeneratedKeys 或者通过 insert 语句的

selectKey 子元素设置它的值。默认: 不设置。

原文:http://www.cnblogs.com/dorothychai/p/3760031.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148743.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 广东移动DNS收集[通俗易懂]

    广东移动DNS收集[通俗易懂]有些网站的CDN有问题,使用第三方DNS会有访问不了的情况。多数是因为CDN通过DNS请求来源解析出对应线路的服务器IP,但使用第三方DNS时会出现把移动来源解析为电信来源,而服务器电信线路IP又拒绝非电信来源IP访问时,就会出现无法访问网站的情况。所以,使用移动网络的时候,还是尽量使用移动自己的DNS吧!这里收集了一下广东移动的DNS,非移动用户估计用不了。ns3.gd.

    2022年7月11日
    74
  • hdu 3832 Earth Hour (最短路变形)

    hdu 3832 Earth Hour (最短路变形)

    2022年1月22日
    43
  • python初级:基础知识-字符串

    python初级:基础知识-字符串

    2021年10月6日
    37
  • javascript获取当前系统时间代码_获取当前系统时间

    javascript获取当前系统时间代码_获取当前系统时间JavaScript获取当前时间time开发常用时间笔记JS获取当前时间Js获取当前日期时间及其它操作**谨记要懂得经常在控制台输出结果**varmyDate=newDate();myDate.getYear();//获取当前年份(2位)myDate.getFullYear();//获取完整的年份(4位,1970-???)myDate.getMonth();//获取当前月份(0-11,0代表1月)myDate.getDate();

    2022年9月23日
    0
  • 至少使用两种方式运行pycharm_python还是java

    至少使用两种方式运行pycharm_python还是java要!!!下了pycharm但是没下载python也是运行不了的原文链接:Python环境搭建—安利Python小白的Python和Pycharm安装详细教程-知乎工欲善其事,必先利其器。首先我们先来安装Python,在这里安利一下:其实在没有安装Python之前也可以安装Pycharm的,两者并没有什么冲突关系。但是话说回来,如果没有Python编译器,那么Pycharm其实只是个驱壳,即便你编好程序之后,也并不能运行。举个栗子,Python相当于子弹,Pycharm相当于手枪,如果手

    2022年8月29日
    1
  • idea20213.3激活码[在线序列号]

    idea20213.3激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    249

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号