ibatis批量增加数据
ibatis有批处理功能,如下是执行批量增加操作,但我不明白的是如果如下这样定义insertid的定义有要求么,是必须*.batchinsert才行么?还有就是入参的问题...
ibatis有批处理功能,如下是执行批量增加操作,但我不明白的是如果如下这样定义
insertid的定义有要求么,是必须*.batchinsert才行么?还有就是入参的问题,
入参是一个list,list中应该add的是sdo对象么?因为insert是批量的,通过id的batchinsert来判断是批增加处理,然后取list中的sdo,sdo.getId(),sdo.getName(),是我想的这种方式吗?
<insertid="member.batchInsert" parameterClass="java.util.List">
insert into tableName (id,name) values
<iterate conjunction=";" property="conditions">
(#id#,#name#)
</iterate>
</insert>
求解答? 展开
insertid的定义有要求么,是必须*.batchinsert才行么?还有就是入参的问题,
入参是一个list,list中应该add的是sdo对象么?因为insert是批量的,通过id的batchinsert来判断是批增加处理,然后取list中的sdo,sdo.getId(),sdo.getName(),是我想的这种方式吗?
<insertid="member.batchInsert" parameterClass="java.util.List">
insert into tableName (id,name) values
<iterate conjunction=";" property="conditions">
(#id#,#name#)
</iterate>
</insert>
求解答? 展开
展开全部
ibatis的批处理是指,将startBatch与executeBatch之间的语句一次一起提交执行,减少与数据库的交互数次,提高执行性能,如:sqlMapper.startBatch();要执行的语句……sqlMapper.executeBatch();不是你指的这样子用xml映射文件中的标签参数,还有就是你<insert id="member.batchInsert">也写错了,没有这样的写法,这个Id是用来dao层的映射用来执行crud操作的,<iterate>标签一般用于<select>标签的,它可以循环一个list或者map但循环出来的是一个对象,对象里面的属性是不可能直接循环出来的,它还没高级到能自动循环出的condition[].getName了
追问
也就是namingsql文件下配置的好比是一个insert into table(c1,c2) values(v1,v2);
然后ibatis只是对jdbc批处理的一种封装,基本也就是执行了多次insert,但提交是通过响应api如executeBatch来执行批量的数据新增的是吗
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询