项目开发中总是会用到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>