后台接收json放在list&&mybatis在oracle中批量添加

[
    {
        "siblings":[        
            {
                "id":"a0a2097f21134e52bc207faea22fc2ce",
                "name":"面色如醉状"
            },
            {
                "id":"4a1fcc90ba85499b8302c87270491459",
                "name":"口噤不开"
            }
        ],
        "content":"面色如醉状 口噤不开 ",
        "name":"主诉",
        "id":"3"
    },
    {
        "name":"中医症候",
        "id":"9",
        "content":"1123331"
    }

]

后台接收前台传的json串,

 String jsonData=req.getParameter("pathological");
          JSONArray jsonArray=JSONArray.fromObject(jsonData);
            JSONObject jsonJ =new JSONObject();
            JSONObject jsonJ2 =new JSONObject()
          
           List<ConsiliaIndexDetail> alist=new ArrayList<ConsiliaIndexDetail>();
             ConsiliaIndexDetail ooa=null;
           for(int i=0;i<jsonArray.size(); i++){
              ooa=new ConsiliaIndexDetail();
              jsonJ = jsonArray.getJSONObject(i);
              if(jsonJ.getString("siblings")!=null&&!"".equals(jsonJ.getString("siblings"))){
                 JSONArray jsonArray2=JSONArray.fromObject(jsonJ.getString("siblings"));
                 int  jSize=jsonArray2.size();
                 System.out.println(jSize);
                  for (int j = 0; j < jsonArray2.size(); j++) {

                      ooa=new ConsiliaIndexDetail();
                      jsonJ2 = jsonArray2.getJSONObject(j);
                      String name=(String)jsonJ2.getString("name");
                      String indexid=(String)jsonJ2.getString("id");
                      System.out.println(name+indexid);
                      ooa.setIndexName((String)jsonJ2.getString("name"));
                      ooa.setIndexId((String)jsonJ2.getString("id"));
                      ooa.setIndexContent(null);
                      ooa.setVisitParentId("123");
                      alist.add(ooa);
                }
              }
              String name=(String)jsonJ.getString("name");
              String content=(String)jsonJ.getString("content");
              String indexid=(String)jsonJ.getString("id");
              System.out.println(name+content+indexid);
               ooa.setConsiliaDetailId(UUIDUtil.create32UUID());
              ooa.setIndexName((String)jsonJ.getString("name"));
              ooa.setIndexContent((String)jsonJ.getString("content"));
              ooa.setIndexId((String)jsonJ.getString("id"));             
              alist.add(ooa);
          
              }
           for (ConsiliaIndexDetail o : alist) {
            System.out.println(o.toString());
        }

一层解析:循环放到map中

String  jsonData="[{'indexid':1,'指标名称':53,'指标内容':'广州'},{'indexid':2,'指标名称':18,'指标内容':'西安'}]";
         JSONArray jsonArray=JSONArray.fromObject(jsonData);
       Map<String,Map<String,String>>  map=new HashMap<String,Map<String,String>>();
            JSONObject jsonJ =null;
            List<AAA> alist=null;
            AAA a=null;
           for(int i=0;i<jsonArray.size(); i++){
             a=new AAA();
              jsonJ = jsonArray.getJSONObject(i);
              map.put("指标名称",(String)jsonJ.getString("指标名称") );
              map.put("指标内容",(String)jsonJ.getString("指标内容") );
              map.put("indexid",(String)jsonJ.getString("indexid") );
         }
          for(Map.Entry<String, String> entry : map.entrySet()){  
                System.out.println(entry.getKey()+"="+entry.getValue());  
            }


一层解释:循环放到list中

          String normalJosnData=req.getParameter("json1");      
          JSONArray jsonArray1=JSONArray.fromObject(normalJosnData);           
            JSONObject jsonJ =null;
           List<ConsiliaIndexDetail> alist=new ArrayList<ConsiliaIndexDetail>();
             ConsiliaIndexDetail ooa=null;
           for(int i=0;i<jsonArray1.size(); i++){
              ooa=new ConsiliaIndexDetail();
              jsonJ = jsonArray1.getJSONObject(i);         
               ooa.setConsiliaDetailId(UUIDUtil.create32UUID());
              ooa.setIndexName((String)jsonJ.getString("name"));
              ooa.setIndexContent((String)jsonJ.getString("content"));
              ooa.setIndexId((String)jsonJ.getString("id"));
              ooa.setVisitParentId("123");
              ooa.setDictId(null);
              ooa.setDictName(null);
              ooa.setIndexLevel(null);
              ooa.setIndexParentId(null);
              alist.add(ooa);
              }

使用mybatis在oracle中实现批量添加 注意oracle中没有主键自增,所以要设置useGeneratedKeys="false", 我当时生成的uuid,要想实现自增的话,还可以使用oracle创建序列

CREATE SEQUENCE emp_sequence  --序列名                

 INCREMENT BY 1   -- 每次加几个                  

 START WITH 1       -- 从1开始计数                  

 NOMAXVALUE        -- 不设置最大值

collection说的是传过去的类型:list array map等

item:别名

separator:是分隔符,执行多条insert语句

  <insert id="add" parameterType="java.util.List" useGeneratedKeys="false">  
           begin  
            <foreach collection="list" item="item" index="index" separator=";">  
                insert into TCM_CONSILIAINDEX  
                (     CONSILIA_DETAIL_ID,
                      INDEX_ID                
                )  
                values  
                    (  
                        #{item.consiliaDetailId,jdbcType=VARCHAR},
                        #{item.indexId,jdbcType=VARCHAR}                    
                    )  
            </foreach>  
           ;end;  
    </insert>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值