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