文档章节

springmvc+mybatis+ajax 批量插入数据

勤恳的小码农
 勤恳的小码农
发布于 2015/11/06 11:18
字数 292
阅读 3361
收藏 9

批量插入。AJAX发起请求,核心代码如下:

var mids = new Array();
for (var i=0; i< rows.length; i++) {
    mids.push(rows[i].id);
}
$.ajax({
    type: 'POST',
    dataType: "json",
    async: false,
    traditional:true, //这一行很重要
    url: parent.getBasePath()+"sys/role/setAuth.do",
    data: {'mids': mids},
    success: function(data) {},
    error: function(err) {}
});

接下来是Controller的代码:

//直接在方法里传入List会报错,所以要通过一个类封装一层
@RequestMapping("/setAuth")
@ResponseBody
public Map<String,Object> setAuth(Short id, ModParam midsA) {

}

//封装List对象的类
public class ModParam implements Serializable{

	private static final long serialVersionUID = 8607859409880232081L;
	private List<Short> mids;

	public List<Short> getMids() {
		return mids;
	}

	public void setMids(List<Short> mids) {
		this.mids = mids;
	}

}

Contoller一层一层的往下调用,最后到了Mapper:

/***
 * 批量插入
 * @return
 * @throws Exception
 */
int insertWithList(List<RoleResource> rr) throws Exception;

对应的xml(我这里的id不是一个自增的Sequence,我是去表中选取最大的id,然后依次加1,写入到对象,所以没有用到mybatis的selectKey,这里是针对Oracle):

  <insert id="insertWithList" parameterType="java.util.List">
  	insert into T_WEB_ROLE_RESOURCE(id, role_id, source_id, remark) 
  	<foreach collection="list" item="item" index="index" separator="union all">
  	select #{item.id},#{item.roleId},#{item.sourceId},#{item.remark} from dual
  	</foreach>
  </insert>

嗯,这就差不多了。

附上一个参考链接:

http://chenzhou123520.iteye.com/blog/1583407



© 著作权归作者所有

勤恳的小码农
粉丝 6
博文 19
码字总数 6986
作品 0
杭州
私信 提问
Mongo的一些心得

一.mongo-java-driver 项目中使用的是java原生mongo操作api,个人觉得,不是那么的方便,资料好像也比较少,只有官方文档可供使用 基础用法不再啰嗦,特别介绍下mongo的批量查询和批量插入。...

清风傲剑
2015/09/29
2.1K
0
优雅地使用pt-archiver进行数据归档

mysql 日志 公有云 test charset uuid source statistics 摘要: 一、引言 最近由于业务需求,需要将公有云RDS(业务库)的大表数据归档至私有云MySQL(历史库),以缩减公有云RDS的体积和成...

姬子玉
2017/11/30
0
0
Oracle + Mybatis实现批量插入、更新和删除示例代码

前言 Mybatis是web工程开发中非常常用的数据持久化的框架,通过该框架,我们非常容易的进行数据库的增删改查。数据库连接进行事务提交的时候,需要耗费的资源比较多,如果需要插入更新的数据...

一看就喷亏的小猿
2018/11/22
329
0
MySQL批量插入返回自增ID的问题

MySQL批量插入返回自增ID的问题 Mz的博客2017-08-1838 阅读 数据库MySQL 业务场景 现需将表A中的数据经过转换后迁移入表B,并将一些附加数据存入表C,表C通过一个BId字段来与表B中的数据进行...

Mz的博客
2017/08/18
0
0
优雅的使用pt-archiver进行数据归档

作者简介:蓝剑锋 TCL高级DBA,MySQL&Oracle OCP,负责数据库架构设计、数据库自动化运维平台。微信:lanjian106103,个人公众号:DBARUN 一. 引言 最近由于业务需求,需要将公有云RDS(业务...

ACMUG
2018/01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

JS 打印控制

JS 打印控制 var PrintStartString = "<!--打印开始标示符-->";//设置打印开始区域var PrintEndString = "<!--打印结束标示符-->";//设置打印结束区域var HtmlText = window.do......

DrChenXX
17分钟前
5
0
LevelDB:使用介绍

LevelDB 提供的接口其实很简单,下面举例进行简单说明。 安装 git clone https://github.com/google/leveldb cd leveldb mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. ......

slagga
23分钟前
5
0
《JavaScript正则表达式迷你书》读书笔记

正则基础 常见简写形式 字符组 具体含义 记忆方式 \d 表示 [0-9]。表示是一位数字。 其英文是 digit(数字) \D 表示 [^0-9]。表示除数字外的任意字符。 \w 表示 [0-9a-zA-Z_]。表示数字、大小...

muzi131313
28分钟前
4
0
Git的反悔操作

概述 这次主要来讲讲Git的反悔操作,自己平时在写代码的过程中经常会出现想要弃用所有的改动或回滚到上一次commit的情况。Git上的反悔操作有reset、rebase、revert等,每个操作各有区别和对应...

duduYZ
28分钟前
2
0
实现双向绑定Proxy比defineproperty优劣如何?

前言 双向绑定其实已经是一个老掉牙的问题了,只要涉及到MVVM框架就不得不谈的知识点,但它毕竟是Vue的三要素之一. Vue三要素 响应式: 例如如何监听数据变化,其中的实现方法就是我们提到的双向...

寻找海蓝
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部