項目開發中總是會用到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>
