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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 谈谈唯一约束和唯一索引的关系_唯一约束和主键约束的一个区别是

    谈谈唯一约束和唯一索引的关系_唯一约束和主键约束的一个区别是最近在看数据库相关知识,感觉唯一约束和唯一索引好像有点类似,于是研究了一番,于是就有了这篇文章。概念开始之前,先解释一下约束和索引。约束全称完整性约束,它是关系数据库中的对象,用来存放插入到一个表中一列数据的规则,用来确保数据的准确性和一致性。索引数据库中用的最频繁的操作是数据查询,索引就是为了加速表中数据行的检索而创建的一种分散的数据结构。可以把索引类比成书的目录,有目录…

    2026年2月3日
    3
  • PrintWriter作用[通俗易懂]

    PrintWriter作用[通俗易懂]PrintWriter()的作用是为了定义流输出的位置,并且此流可以正常的存储中文,减少乱码输出。PrintWriter可以在写入同时对写入的数据进行格式化。PrintStream主要操作byte流,而PrintWriter用来操作字符流…

    2022年8月10日
    12
  • html echarts饼状图_echarts环形图

    html echarts饼状图_echarts环形图ECharts旭日图旭日图(Sunburst)由多层的环形图组成,在数据结构上,内圈是外圈的父节点。因此,它既能像饼图一样表现局部和整体的占比,又能像矩形树图一样表现层级关系。ECharts创建旭日图很简单,只需要在series配置项中声明类型为sunburst即可,data数据结构以树形结构声明,看下一个简单的实例:实例varoption={series:{type:’s…

    2022年9月26日
    3
  • Mysql Connector C++ 在VS2008下编译[通俗易懂]

    Mysql Connector C++ 在VS2008下编译[通俗易懂]1、安装Mysql下载http://dev.mysql.com/downloads/windows/installer/,安装即可2、安装完成之后找到安装目录下有ConnectorC++1.1.3目录,目录下有include和lib文件夹在vs2008中将include路径包含进来:再把lib路径包含进来:再将mysqlcppconn.lib库以及mysql

    2022年7月27日
    10
  • C++中fstream_在使用中

    C++中fstream_在使用中C++中fstream的使用

    2026年1月21日
    1
  • intellij 激活码【最新永久激活】

    (intellij 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html83…

    2022年3月27日
    105

发表回复

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

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