项目开发中总是会用到json以及java对json字符串的处理,和Mybatis的数据批量插入操作
本文潜解下,如有不足请多多指教
步骤一:获取前台页面数据并封装成JSON字符串
步骤二:Ajax传入后台
步骤三:Java后台解析JSON字符串
步骤四:Mybatis批量插入
步骤一、
获取前台页面数据 封装成JSON字符串
/**
* 获取专家用药信息
*/
function getzjypValue(){
var len = $("#tbody").children("tr").length;
var map = new Map();
for(var i = 0; i < len; i++){
var tr = $("#tbody").children("tr:eq("+i+")");
var ypmc = tr.children("td:eq(0)").text();
var ypxxid = tr.children("td:eq(4)").children("input").val();
var lysl = tr.children("td:eq(4)").children("input:last").val();
var temp = new Map();
temp["ypmc"] = ypmc;
temp["ypxxid"] = ypxxid;
temp["lysl"] = lysl;
map[i]=temp
}
return JSON.stringify(map);
}
步骤二、
ajax传入后台
function savezj(){
var values = zjypsySave();
var xzid = $("#xz_id").val();
var para = {"formValue":values,xzid:xzid}
$.ajax({
url:'<%=path%>/background/bjjl/zjypzc.do',
type:'post',
data:para,
traditional:true,
success:function(data){
console.log(data);
},
error:function(e){
console.log("出错了"+e);
}
})
}
步骤三、
后台开始JSON字符串
/**
* 专家药品使用
* @param formValue
* @param xzid 巡诊ID
* @return
*/
public Integer zjypzcc(String formValue,String xzid,String zjid){
if(StringUtils.isEmpty(formValue) || StringUtils.isEmpty(xzid)){
return null;
}
//封装成集合 进行批量插入
List<Map<String, Object>> result = new ArrayList<Map<String,Object>>();
JSONObject jsonObject = JSONObject.fromObject(formValue);
for (int i = 0; i < jsonObject.size(); i++) {
JSONObject object = jsonObject.getJSONObject(""+i+"");
String id = UUID.randomUUID().toString().replace("-","");
Map<String, Object> map = new HashMap<String, Object>();
map.put("zjypsyid", id);
map.put("xzid", xzid);
map.put("ypxxid",object.getString("ypxxid"));
map.put("ypmc",object.getString("ypmc"));
map.put("ypsysl",object.getString("lysl"));
result.add(map);
}
Integer integer = 0;
try {
integer = yplyglService.insertYP_LYSL_BylzjId(result);//开始批量插入
upZJYPXXLYSL(result);
} catch (Exception e) {
e.printStackTrace();
}
return integer;
}
步骤四、
Mybatis批量插入SQL
<insert id="insertYP_LYSL_BylzjId" parameterType="java.util.List">
insert into d_bjzjk_zjypsy values
<foreach collection="list" separator="," item="res">
(#{res.zjypsyid},#{res.xzid},#{res.ypxxid},#{res.ypmc},#{res.ypsysl})
</foreach>
</insert>
