oracle批量插入并且返回自增主键_mybatis批量插入返回主键问题

本文记录了在整合MyBatis时遇到的批量插入Oracle数据库并返回自增主键的问题。文章指出MyBatis 3.2.6版本存在bug,升级到3.3.1可以解决无法返回主键的错误。同时展示了如何通过设置`useGenerateKeys`和`keyProperty`获取自增主键。示例代码显示了批量插入后如何获取每个插入记录的主键ID。
摘要由CSDN通过智能技术生成

今天整合mybatis时候用到返回主键问题,批量插入总是返回不了主键还报错。

记录入下:

pom版本:

3.2.6

mybatis.xml:

insert into userinfo (UserName,UserPwd) values

(#{item.username},#{item.userpwd})

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Error getting generated key or setting result to parameter object. Cause: org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [list]

这个版本有bug,升级版本为:

3.3.1

可以解决。

这里边还有一个问题,如何获取自增长的id:

public void test() {

// TODO Auto-generated method stub

UserInfo user = new UserInfo();

user.setUsername("mayijinfu");

user.setUserpwd("1234569");

UserInfo user2 = new UserInfo();

user2.setUsername("tianmao999999");

user2.setUserpwd("456");

ArrayList arrayList = new ArrayList();

arrayList.add(user);

arrayList.add(user2);

userService.addUserBatch(arrayList);

System.out.println("*******************************");

System.out.println("插入之后的主键user-id"+arrayList.get(0).getId());//从这可以看出,好像已经被持久化了,这个跟hibernate好像一直,有看大此博客的大神给解释下。对于单个插入也是如此:user.getId(),即可获取主键id。

System.out.println("插入之后的主键user2-id"+arrayList.get(1).getId());

System.out.println("*******************************");

}

mybatis 批量插入 返回主键id

我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,标签 ...

Mybatis批量insert 返回主键值和foreach标签详解

Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不 ...

mybatis 3 批量插入返回主键 Parameter 'id' not found

@Insert("

mybatis+postgresql10插入返回主键ID

MyBatis如果使用useGeneratedKeys去生成自增列会造成不成功,因为官方提供只支持这些数据库:mybatis generatedkeys,那么如果要用在oracle和postgresq ...

MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键

MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>&gt ...

MyBatis返回主键,MyBatis Insert操作返回主键

MyBatis返回主键,MyBatis Insert操作返回主键 >>>>>>>>>>>>>>>>&gt ...

mybatis mysql 批量insert 返回主键

Mybatis在插入单条数据的时候有两种方式返回自增主键:    mybatis3.3.1支持批量插入后返回主键ID, 首先对于支持自增主键的数据库:useGenerateKeys和keyProper ...

PostgreSQL使用MyBatis,insert时返回主键

MyBatis中普通的insert语句是这样的:

(转)Mybatis insert后返回主键给实体对象(Mysql数据库)

& ...

随机推荐

Delphi_05_Delphi_Object_Pascal_基本语法_03

继续Delphi的学习之旅, 废话不多说,直接贴代码. { Delphi基本语法 1.对象 2.指针 3.类型别名 和 类型转换 } program DelphiObject; {$APPTYPE C ...

SQLite Expert Professional 3查看SQLite数据

通常在android进行SQLite数据库的处理查看很不方便,于是自己下载了一个SQLite Expert Professional 3可视化工具用来进行查询数据,由于时间问题就不多说了,直接讲使用方 ...

【温故Delphi】Win32API之CreateMutex

解决问题 如何让一个软件在一台机器上只能运行一个实例呢?这个问题用专业术语就是进程互斥.这个问题可以通过CreateMutex来解决. 进程互斥的核心思想:进程在启动时首先检查是否存在此进程实例,如果 ...

[WEB API] CLIENT 指定请求及回应格式(XML/JSON)

[Web API] Client 指定请求及响应格式(xml/json) Web API 支持的格式请参考 http://www.asp.net/web-api/overview/formats-an ...

SharePoint自动化系列——创建MMS terms

转载请注明出自天外归云的博客园:http://www.cnblogs.com/LanTianYou/ PowerShell脚本实现MMS group.termSet.terms的自动化创建: Add- ...

Python基础:1.数据类型(列表)

提示:python版本为2.7,windows系统 1.列表(List) List,是一个有序的集合,可以添加.删除其中的元素. >>> colors = ['red', 'oran ...

HTTP Basic Authentication认证的各种语言 后台用的

访问需要HTTP Basic Authentication认证的资源的各种语言的实现 无聊想调用下嘀咕的api的时候,发现需要HTTP Basic Authentication,就看了下. 什么是HT ...

hellocharts-android开源图表库(效果非常好)

泡在网上的日子 发表于 2014-11-07 12:28 第 33156 次阅读 chart 2 编辑推荐:稀土掘金,这是一个高质量的技术干货分享社区,web前端.Android.iOS.设计资源和产 ...

Python自动化--语言基础6--模块操作之re、MySQL、Excel

1.Python自有模块正则 import re # re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None print(re.match("aaa ...

实现ppt幻灯片播放倒计时

需求:为控制会议时间,采取ppt幻灯片播放倒计时的办法,倒计时5分钟. 分析:用EnumWindows枚举窗口,发现PPT窗口类名有三种:PP12FrameClass.MS-SDIb.screenCl ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值