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


相关推荐

  • springaop与aspectjweaver

    springaop与aspectjweaverorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname’sysScheduleUserDateServiceImpl’definedinURL[jar:file:/C:/Users/Administrator/.m2/repository/com/ruoyi/ruoyi-schedule-one/3.4.0/ruoyi-schedule-one-3.4.0.jar!/com/ruo

    2022年7月12日
    27
  • ajax 跨域请求api_java跨域请求的三种方法

    ajax 跨域请求api_java跨域请求的三种方法让ajax请求访问servlet,可以让ajax请求跨域,通过直接本应用中的资源servlet,ajax可以不跨域访问本应用中的servlet,让java程序发送Get,Post请求,来访问2号服务器中的的servlet。ProxyServlet发送get请求,访问b站点TargerServlet,请求响应回来数据在进行响应。首先把架包导入创建lib目录,复制进去选中右键Addaslibrary。(2)ajax跨域解决方案之代理机制的代码实现。引入架包httpclient架包。…

    2022年8月24日
    4
  • 手把手教你学SVN

    手把手教你学SVN注意转载须保留原文链接(http://www.cnblogs.com/wzhiq896/p/6822713.html)作者:wangwen896SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。对于很多新手来…

    2022年5月6日
    40
  • MSF搭建socks代理[通俗易懂]

    MSF搭建socks代理[通俗易懂]目录搭建代理添加路由​搭建Socks4a代理搭建Socks5代理连接代理搭建代理当我们通过MSF拿到一个机器的权限后,想通过MSF搭建socks代理,然后通内网。MSF中有三个代理模块,分别是socks4a、socks5、socks_unc。我们一般用socks4a和socks5进行代理。socks5可以设置用户名和密码。这里运行代理后,有时候MSF不会监听端口…

    2022年6月16日
    113
  • office2016专业增强版永久激活密钥 离线激活_增强版16office激活

    office2016专业增强版永久激活密钥 离线激活_增强版16office激活1.Office2016专业增强版永久激活码:MicrosoftOffice2016ProPlusRetailMak序列号XNTT9-CWMM3-RM2YM-D7KB2-JB6DVBHXN

    2022年8月5日
    5
  • Mysql的基本函数–与自定义函数

    Mysql的基本函数–与自定义函数什么是Mysql函数:类似于java的方法将一组逻辑语句封装在方法体对外暴露方法名事先提供好的一些功能可以直接使用函数可以用在select语句及其子句上也可以用在update,delete语句当中函数分类:1)字符串函数2)数值函数3)日期和时间函数4)流程函数5)聚合函数6)自定义函数7)其他函数字符串函数:concat(s1,s2…sn…

    2022年7月27日
    1

发表回复

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

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