mybatis-oracle(ssi2)批量更新

  1. student类
package com.test.hou.po;

public class Student {
	private int sid;
	private String sname;
	private int sage;
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public int getSage() {
		return sage;
	}
	public void setSage(int sage) {
		this.sage = sage;
	}
}

2.StudentAction类

public String batchUpdateStudent(){
		List<Student> studentslist=new ArrayList<Student>();
		for (int i = 0; i < 10; i++) {
			Student student=new Student();
			student.setSid(i);
			student.setSname("cc"+i);
			student.setSage(i+10);
			studentslist.add(student);
		}
		studentService.batchUpdateStudent(studentslist);
		return "batchinsertstudent";

	}

3.

<update id="batchUpdateStudent" parameterType="java.util.List">

	<foreach collection="list" item="item" index="index" separator="" open="begin" close="end;" >
		update student set
				sname =#{item.sname},
				sage =#{item.sage}
		where sid =#{item.sid};
	</foreach>

</update>

注意:oracle批量更新  open="begin" end="end;" sql最后为分号

时间: 2024-11-02 01:10:12

mybatis-oracle(ssi2)批量更新的相关文章

SpringBoot+Mybatis+Druid批量更新 multi-statement not allow异常

本文链接:https://blog.csdn.net/weixin_43947588/article/details/90109325 注:该文是本博主记录学习之用,没有太多详细的讲解,敬请谅解! 在日常的开发过程中难免会有批量操作的功能,Mybatis集成Druid批量更新时经常会出现Error updating database. Cause: java.sql.SQLException: sql injection violation, multi-statement not allow

Mybatis在oracle批量更新

最近公司业务中为了提高效率要做mybatis批量更新,但是到了oracle数据库中做了好几次都没成功,后来发现mybatis最后少了个分号,可能是Mybatis内部做了异常try  catche  处理,导致控制台没有报错信息.在此仅做小记. Mapper文件中的方法定义如下: public int updateCreditStatuslist(List<UserCreditStatus> list); Mapper.xml文件的实现如下:(creditStatus是对象内部的成员,id是对象

170829、mybatis使用oracle和mybatis中批量更新

1.数据库连接必须配置:&allowMultiQueries=true(切记一定要加上这个属性,否则会有问题,切记!切记!切记!) 我的配置如下:jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true 2.批量修改并加判断条件(修改字段可选) <!-- 批量更新 --> <update id="updateMatchs&

mybatis批量更新

mybatis批量更新 以前做的东西,怕忘了随手做一个记录 首先在配置数据库连接字符串后面加上 &allowMultiQueries=true 我的完整的是这样的 jdbc:mysql://192.168.1.200:3306/huasheng?characterEncoding=utf-8&allowMultiQueries=true Controller层把一个JSON字符串转换成list集合 @RequestMapping(value = "/update") p

MyBatis Oracle 使用序列批量插入数据库

由于现在项目昨晚批处理作业抽取数据主键生成器出现了问题,紧急解决用序列作为主键.   底层使用MyBatis与Oracle 数据库库交互. 和度娘交谈了很久她都没有给出解决方案.为   此自己写了想了一种方式,没想到一次测试完全通过.   大致demo如下  java 代码  1 /** 2 * 文件名称: InsertBatch 3 * 内容摘要: 测试 MyBatis 使用序列批量插入 4 * 创 建 人: sunrise 5 * 创建日期:2015-6-18 下午9:16:06 6 * 修

mybatis oracle批量插入

<insert id="insertbatchinfotoemploees" parameterType="java.util.List"> insert into INFOTOEMPLOEE select INFO_EMPLOEES.NEXTVAL,A.* from( <!--INFO_EMPLOEES为自增序列--> <foreach collection="list" item="item"

mybatis数据批量更新

原sql语句: update zyjd set peopleId=case when id=1 then   10, when id=2 then   11 end, roadgridid =case when id=1 then   101, when id=2 then   102 end, ---- where id=1 or id=2 sql意思:当id=1的情况下peopleId =10,roadgridid =101,当id=2的情况下peopleId =11,roadgridid 

oracle使用case或decode语句实现批量更新

最近使用oracle数据库做开发,一开始只需要批量更新多条记录中的某一个字段,后来需求变更需要对多个字段进行更新,故查看资料得到如下内容,分享给大家.我在oracle 10g环境下,都能跑通. 批量更新一个字段: 1 UPDATE categories 2 SET display_order = CASE id 3 WHEN '1' THEN 3 4 WHEN '2' THEN 4 5 WHEN '3' THEN 5 6 END 7 WHERE id IN ('1','2','3'): 或者更普

Mybatis批量更新数据

Mybatis批量更新数据 第一种方式 [html] view plain copy print? <update id="updateBatch" parameterType="Map"> update aa   set a=#{fptm}, b=#{csoftrain} where c in <foreach collection="cs" index="index" item="item&qu