mybatis批量插入返回主键问题
今天整合mybatis时候用到返回主键问题,批量插入总是返回不了主键还报错。
记录入下:
pom版本:
<mybatis.version>3.2.6</mybatis.version>
mybatis.xml:
<insert id="addUserBatch" useGeneratedKeys="true" keyProperty="id" parameterType="java.util.List" >
  		insert into userinfo (UserName,UserPwd) values
  		<foreach collection="list" item="item" index="index" separator=",">
  			(#{item.username},#{item.userpwd})
  		</foreach>
  </insert>
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,升级版本为:
<mybatis.version>3.3.1</mybatis.version>
可以解决。
这里边还有一个问题,如何获取自增长的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<UserInfo> arrayList = new ArrayList<UserInfo>();
    	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批量插入返回主键问题的更多相关文章
- mybatis 批量插入 返回主键id
		
我们都知道Mybatis在插入单条数据的时候有两种方式返回自增主键: 1.对于支持生成自增主键的数据库:增加 useGenerateKeys和keyProperty ,<insert>标签 ...
 - Mybatis批量insert 返回主键值和foreach标签详解
		
Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不 ...
 - mybatis 3 批量插入返回主键  Parameter 'id' not found
		
@Insert("<script>INSERT INTO scp_activity_gift (activity_id,type,gift_id,status,limit_num ...
 - mybatis+postgresql10插入返回主键ID
		
MyBatis如果使用useGeneratedKeys去生成自增列会造成不成功,因为官方提供只支持这些数据库:mybatis generatedkeys,那么如果要用在oracle和postgresq ...
 - MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键
		
MyBatis自动获取主键,MyBatis使用Oracle返回主键,Oracle获取主键 >>>>>>>>>>>>>> ...
 - MyBatis返回主键,MyBatis Insert操作返回主键
		
MyBatis返回主键,MyBatis Insert操作返回主键 >>>>>>>>>>>>>>>>> ...
 - mybatis注解版in查询、字符串判空模糊匹配 、批量插入、插入返回主键
		
IN查询 @Select({"<script> " + " select * "+ " from business_threat bt \ ...
 - mybatis mysql 批量insert 返回主键
		
Mybatis在插入单条数据的时候有两种方式返回自增主键: mybatis3.3.1支持批量插入后返回主键ID, 首先对于支持自增主键的数据库:useGenerateKeys和keyProper ...
 - PostgreSQL使用MyBatis,insert时返回主键
		
MyBatis中普通的insert语句是这样的: <insert id="insert" parameterType="com.xxx.xxx.xxDo" ...
 
随机推荐
- 《Linux及安全》实践3.3
			
<Linux及安全>实践三 字符集总结与分析 [by lwr] 一.ISO.UCS/UTF.GB系列字符集分析 1.字符集&字符编码 字符集(Charset):是一个系统支持的所有 ...
 - 浅谈Oracle事务【转载竹沥半夏】
			
浅谈Oracle事务[转载竹沥半夏] 所谓事务,他是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单元.通俗解释就是事务是把很多事情当成一件事情来完成,也就是大家都在一条船上,要 ...
 - C#读取Excel表格数据到DataGridView中和导出DataGridView中的数据到Excel
			
其实想在datagridview中显示excel表格中的数据跟读取数据库中的数据没什么差别,只不过是创建数据库连接的时候连接字段稍有差别. private void btnShow_Click(obj ...
 - DataList 用法详解
			
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataList.aspx. ...
 - python引用py文件中文报错
			
文件 a.py 中引用文件 b.py 如果文件b.py中包含中文,会报错. 文件hello.py中代码如下: def say_nihao(): print "你好" 文件main. ...
 - AFNETWorking 不支持中文URL请求
			
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; min-height: 16.0px } p.p ...
 - goim 及时消息 集成
			
https://github.com/roamdy/goim-oc-sdk goim 及时消息 集成
 - 前端forEach在Array、map、set中的使用
			
数组: var s = ['a','b','c']; s.forEach(function(ele,index,array){ console.log(ele); }); Map: var map = ...
 - Easy Tag Write(3.1)
			
package skyseraph.android.util; import skyseraph.easytagwrite.R; import android.app.Dialog; import a ...
 - internet选项菜单灰色
			
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer”下,然后在“Internet Explorer”上单击右键,在选择“删除”.