keyProperty="id" 和useGeneratedKeys="true"作用

在使用mybatis时,常常会出现这种需求:
当主键id是自增的情况下,添加一条记录的同时,其主键id是不能使用的,当我们取出主键id的值发现id为null,但是有时我们需要该主键,这时我们该如何处理呢?
这时我们只需要在其对应xxxmapper.xml中加入以下属性即可:
useGeneratedKeys=”true” keyProperty=”id”

1 <insert id="insertSelective" parameterType="com.xxx.dataobject.UserDo" keyProperty="id" useGeneratedKeys="true">

2 ............

3 </insert>

主要是在主键是自增的情况下,添加成功后可以直接使用主键值,其中keyProperty的值是对象的属性值不是数据库表中的字段名

原文地址:https://www.cnblogs.com/zenghuilong/p/10276831.html

时间: 2024-08-13 17:08:13

keyProperty="id" 和useGeneratedKeys="true"作用的相关文章

Mybatis插入语句useGeneratedKeys=&quot;true&quot;的用法

<!-- 插入新的问题件 --> <!-- useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中 --> <insert id="insert" parameterType="jw.base.entity.WrongRecApply" useGeneratedKeys="true" keyProperty="id" >

mybaties中的selectKey和useGeneratedKeys=true

<!-- 账户创建 --><insert id="create" parameterType="Account"> <selectKey keyProperty="id" order="AFTER" resultType="int"> select last_insert_id() </selectKey> <insert id="insert

Tomcat配置文件context.xml中&lt;Loader delegate="true" /&gt;作用

首先,你需要了解一下JVM的Classloader机制(详细请自行google之).简而言之,JVM的classloader加载继承关系分为BootstarpClassLoader --> ExtClassLoader --> SystemClassLoader,应用的WebAppClassLoader继承自SystemClassLoader,在加载具体某个类时,一般会先委托给父类ClassLoader,当父类ClassLoader无法加载成功时,才会再由子类ClassLoader尝试加载,这

HTML中id和name的作用与区别

 name原来是为了标识之用,但是现在根据规范,都建议用id来标识元素.但是name在以下用途是不能替代的:             1. 表单(form)的控件名,提交的数据都用控件的name而不是id来控制.因为有许多name会同时对应多个控件,比如checkbox和radio,而id必须是全文档中唯一的.此外浏览器会根据name来设定发送到服务器的request.因此如果用id,服务器是无法得到数据的.             2. frame和window的名字,用于在其他frame或w

Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1

记录一次傻逼的问题, 自己把自己蠢哭:Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要通过xx.getId()方法获取,因为在mybatis中指定自增主键id封装到了对象的属性中,所以我们需要在对象中来获取 代码示例如下: <insert id="add" useGeneratedKeys="true" keyColumn="id&quo

MyBatis+MySQL 返回插入的主键ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into us

ssm框架获得实时的自增id

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下:Xml代码  收藏代码<insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">     

Mybatis Insert 返回主键ID

<insert id="insert" useGeneratedKeys="true" keyProperty="u_Id" parameterType="User" > insert into User ... </insert> 其中 ①.useGeneratedKeys:是否生成主键 ②.keyProperty:实体类对应的ID属性 sql执行完毕后,user对象里的id就会自动赋值

Mybatis获取插入记录的自增长ID

需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下:  <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User">       insert