Mybatis返回插入主键id的方法
在mapper的xml文件中配置 useGeneratedKeys
以及 keyProperty 返回Id即可
<insert id="insertObject" useGeneratedKeys="true" keyProperty="id" parameterType="www.change.tm.model.Orders" > insert into orders <trim prefix="(" suffix=")" suffixOverrides=","> <if test="number!=null"> OrderNumber, </if> <if test="orderTime!=null"> orderTime, </if> </trim> values <trim prefix="(" suffix=")" suffixOverrides=","> <if test="number!=null"> #{number}, </if> <if test="orderTime!=null"> #{orderTime}, </if> </trim> </insert>
PS:Mybatis中insert中返回主键ID的方法
1、XyzMapper.xml
<insertid=“doSomething"parameterType="map"useGeneratedKeys="true"keyProperty=“yourId"> ... </insert>
或
<insert id=“doSomething" parameterType=“com.xx.yy.zz.YourClass" useGeneratedKeys="true" keyProperty=“yourId"> ... </insert>
2、XyzMapper.java
public int doSomething(Map<String, Object> parameters); or public int doSomething(YourClass c);
3、要在map或c中有一个字段名为yourId,Mybatis会自动把主键值赋给这个字段。
Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put(“yourId”, 1234); ... mapper.doSomething(parameters); System.out.println(“id of the field that is primary key” + parameters.get(“yourId"));
或
YourClass c = new YourClass(); ... mapper.doSomething(c); System.out.println(“id of the field that is primary key” + c.yourId);
好了,到此结束,希望对大家有所帮助!
相关推荐
-
详解Java MyBatis 插入数据库返回主键
最近在搞一个电商系统中由于业务需求,需要在插入一条产品信息后返回产品Id,刚开始遇到一些坑,这里做下笔记,以防今后忘记. 类似下面这段代码一样获取插入后的主键 User user = new User(); user.setUserName("chenzhou"); user.setPassword("xxxx"); user.setComment("测试插入数据返回主键功能"); System.out.println("插入前主键为:
-
利用Java的MyBatis框架获取MySQL中插入记录时的自增主键
第一步: 在Mybatis Mapper文件中添加属性"useGeneratedKeys"和"keyProperty",其中keyProperty是Java对象的属性名! <insert id="insert" parameterType="Spares" useGeneratedKeys="true" keyProperty="id"> insert into spares
-
MyBatis中insert操作返回主键的实现方法
在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.DB2,可以采用如下配置方式: <insert id="add" parameterType="vo.Category"> <selectKey resultType="
-
Mybatis高级映射、动态SQL及获得自增主键的解析
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .下文给大家介绍Mybatis高级映射.动态SQL及获得自增主键的内容,具体详情请参考本文. 一.动态SQL 相信大家在用mybatis操作数据库时时都会碰到一个问题,假如现在我们有一个关于作者的list authorList,需要根据authorList里已有的作者信息在数据库中查询相应作者的博客信息.
-
MyBatis插入时获取自增主键方法
MyBatis 3.2.6插入时候获取自增主键方法有两种.下面以以MySQL5.5为例通过两种方法给大家介绍mybatis获取自增主键的方法,一起看看吧. 以MySQL5.5为例: 方法1: <insert id="insert" parameterType="Person" useGeneratedKeys="true" keyProperty="id"> insert into person(name,pswd
-
Mybatis返回插入主键id的方法
在mapper的xml文件中配置 useGeneratedKeys 以及 keyProperty 返回Id即可 <insert id="insertObject" useGeneratedKeys="true" keyProperty="id" parameterType="www.change.tm.model.Orders" > insert into orders <trim prefix="
-
Mybatis批量插入并返回主键id的方法
目录 场景 错误 分析原因 排查问题 场景 在做商城的时候,sku表进行了拆分,sku的基本信息以及sku的库存表.因为库存会经常的变动,会导致行锁. 这里就是新增的时候,因为在新增商品的时候,会有多条sku的数据进行批量的插入,那么有批量插入sku基本信息以及批量插入sku的库存信息. 其中,就需要批量插入sku的基本信息的时候,返回主键id,这就能够在sku批量插入库存信息的时候能够插入skuId: 错误 nested exception is org.apache.ibatis.execu
-
mybatis中insert主键ID获取和多参数传递的示例代码
一.插入数据主键ID获取 一般我们在做业务开发时,经常会遇到插入一条数据并使用到插入数据的ID情况.如果先插入在查询的话需要多一次sql查询,未免效率太低.因此mybatis也有提供插入数据并返回主键ID的方式.如下 1.Insert/update 1.1.属性解释 keyProperty selectKey 语句结果应该被设置的目标属性.如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表. resultType 结果的类型.MyBatis 通常可以推算出来,但是为了更加确定写上也不会有什
-
MyBatis+MySQL 返回插入的主键ID的方法
需求:使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法:在mapper中指定keyProperty属性,示例如下: <insert id="insertAndGetId" useGeneratedKeys="true" keyProperty="userId" parameterType="com.chenzhou.mybatis.User"> insert into us
-
详解mybatis插入数据后返回自增主键ID的问题
1.场景介绍: 开发过程中我们经常性的会用到许多的中间表,用于数据之间的对应和关联.这个时候我们关联最多的就是ID,我们在一张表中插入数据后级联增加到关联表中.我们熟知的mybatis在插入数据后返回的是插入成功的条数,那么这个时候我们想要得到相应的这条新增数据的ID,该怎么办呢? 2.插入数据返回自增主键ID方法(一) 在映射器中配置获取记录主键值xml映射: 在xml中定义useGeneratedKeys为true,返回主键id的值,keyProperty和keyColumn分别代表数据库
-
Mybatis返回插入的主键问题解决方案
MyBatis添加记录后获取主键ID,这是一个很常见的需求.这个需求有分为两种情况:(1)添加单条记录时获取主键值:(2)获取批量添加记录时各记录的主键值. 备注:MyBatis从3.3.1版本开始支持批量添加记录并返回各记录主键字段值. 1.添加单一记录时返回主键ID(方法一) 此种方法主要思路是:使用<insert>标签或者@Insert注解的属性:useGeneratedKeys.keyProperty.keyColumn.下面分别以xml映射器和注解映射器分别详细阐述一下. 2.添加单
-
mybatis单笔批量保存实体数据的方法
这一篇主要介绍,如何保存实体数据.具体内容如下所示: 一,xml样例 <?xml version="1.0" encoding="GBK"?> <!-- 1..1 --> <cisReports batNo="查询批次号" unitName="查询单位名称" subOrgan="分支机构名称" queryUserID="查询操作员登录名" queryCoun
-
mybatis新增save结束后自动返回主键id详解
目录 mybatis新增save结束后自动返回主键id 1.使用场景 2.原理在Mybatis配置了 mybatis或者mybatis-plus中save方法返回主键值 1.mapper.xml中 2.service或者dao中 mybatis新增save结束后自动返回主键id 1.使用场景 save操作之前实体类中id为null,save之后自动返回带id的实体类 @Override public ChartPagePanel save(ChartPagePanel entity) { Use
-
Mybatis执行插入语句后并返回主键ID问题
目录 1.MySQL数据库设置ID自增情况 2.使用UUID自增主键 3.mybatis-plus在执行插入语句后返回自定义ID 总结 我们知道JDBC可以实现插入语句后返回主键Id,那mybatis可以实现吗? 答案是肯定的. 1.MySQL数据库设置ID自增情况 <insert id="insertUser" parameterType="com.crush.mybatisplus.entity.User"> INSERT INTO tb_user
-
MyBatis在insert插入操作时返回主键ID的配置(推荐)
很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键. 但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数... 接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中. MySQL用法: <insert id="insert" parameterType="com.test.User&qu
随机推荐
- 解决 .NET Core 中 GetHostAddressesAsync 引起的 EnyimMemcached 死锁问题
- JavaScript是如何实现继承的(六种方式)
- 一张图看尽Linux内核运行原理
- linux主机AMH管理面板安装教程及建站使用方法(图文)
- 易语言基础教程之简单代码的编写
- BootStrap表单控件之复选框checkbox和单选择按钮radio
- 动态统计当前输入内容的字节、字符数的实例详解
- Symfony控制层深入详解
- Yii统计不同类型邮箱数量的方法
- JavaScript实现信用卡校验方法
- Python的标准模块包json详解
- windows使用nginx实现网站负载均衡测试实例
- 基于bootstrap插件实现autocomplete自动完成表单
- 使用delegate方法为一个tr标签加一个链接
- JavaScript 数据元素集合与数组的区别说明
- Java高级特性(基础)
- 页面未随软键盘上升及android隐藏软键盘总结
- C#关于类的只读只写属性实例分析
- 第六章 php目录与文件操作
- php车辆违章查询数据示例