前端向java后台批量传值,后台批量插入

前端如何向后台批量传值,后台如何批量插入到数据库? 有小例子最好 万分感谢!!!

前端讲数据封装成数组,数组里的元素是json格式的。传到后台后,数据校验过后,可以直接以对象数组的形式,批量插入数据库。多条数据建议批量插入,执行销量要比一次次单条插入要高。

楼主问批量传值,我是否可以理解为你已经掌握了普通的传值方式?
如果是,你把批量数据用json序列化之后当作一个普通参数回传不就可以了吗?

批量写数据就循环呗

放在一个list集合里,后台遍历插入

前台用DTOS装载, 后台用type传递,中间有转换过程。
抱歉记不太清,只能给几个关键字提示

我说下我之前的一个写法思路吧:
前端:将前端需要的数值进行处理,将数据拼接成字符串,类似"数据1,数据2,数据3,数据4"
后台:接收String参数,通过split(",")根据逗号进行分割,存成list集合,在myBaties的.xml文件里通过标签进行循环操作

表单提交,后台读取表单保存

拼接数据,到后台解析,写入。

前台数据拼接成json格式,通过ajax提交后台获取后,解析封装成对象再保存到数据库中

前台用DTOS装载, 后台用type传递

以下案例:
1、逐条执行10万次
2、分批执行将10万分成m批,每批n条,分多种分批方案来执行。
/**
* 批处理执行
*
* @param m 批次
* @param n 每批数量
* @throws Exception 异常时抛出
/
public static void testInsertBatch(int m, int n) throws Exception {
init(); //初始化环境
Long start = System.currentTimeMillis();
for (int i = 0; i < m; i++) {
//从池中获取连接
Connection conn = myBroker.getConnection();
Statement stmt = conn.createStatement();
for (int k = 0; k < n; k++) {
String sql = "\n" +
"insert into testdb.tuser \n" +
"\t(name, \n" +
"\tremark, \n" +
"\tcreatetime, \n" +
"\tupdatetime\n" +
"\t)\n" +
"\tvalues\n" +
"\t('" + RandomToolkit.generateString(12) + "', \n" +
"\t'" + RandomToolkit.generateString(24) + "', \n" +
"\tnow(), \n" +
"\tnow()\n" +
")";
//加入批处理
stmt.addBatch(sql);
}
stmt.executeBatch(); //执行批处理
stmt.close();
myBroker.freeConnection(conn); //连接归池
}
Long end = System.currentTimeMillis();
System.out.println("批量执行" + m + "
" + n + "=" + m * n + "条Insert操作,共耗时:" + (end - start) / 1000f + "秒!");
}

。。。这个问的。。。!!!更笨不不知道回答

前台批量插入,后台顶多加一个循环一次读取内容,来进行接受。

ajax表单提交,后台接收,批量insert

按照规则传递数据,后台解析

表单提交,后台解析,sql批量插入。但是要注意数据库有时候限制sql长度,一般后台还是分批次插入。

看你使用的框架是什么 jpa 直接传入list集合 继承接口调用方法就行 mybatis foreach 集合就行

将要批量传到后台的数据定义为JSON字符串,再通过Ajax的POST方式向后端传递。算法如下:
一、前端代码
var strParams="data=[{\"name\":\"张三\",\"age\":23},{\"name\":\"李四\",\"age\":24}]";
var strURL = "http://192.168.1.23:8080/site/service";
var xmlHttp;
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("MicroSoft.XMLHTTP");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var txtResult = xmlHttp1.responseText;
}
}
};
xmlHttp.open("POST",strURL,true);
xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

xmlHttp.send(strParams);
二、后端代码
JSONArray jsonarrData = new JSONArray(request.getParameters("data"));
for(int i=0;i<jsonarrData.length;i++){ //遍历JSON数组
JSONObject jsonObj = jsonarrData[i]; //拿到第i个JSON对象
String strName = jsonObj.getString("name"); //从第i个JSON对象中获取各属性值
int age = jsonObj.getInteger("age");
}

前台用jquery的ajax去发送请求访问后台的servlet的经典写法就行了,当然想用框架也可以的

前端传给后台 用 json数据,然后后台接受后转换为list,就批量插入数据库即可