my Batis 내장 foreach 에 대하 여

2403 단어 mybatis
최근 프로젝트 에 필요 한 것 이 있 습 니 다:
JSON 에서 데 이 터 를 분석 한 후에 데이터 베 이 스 를 대량으로 삽입 합 니 다. (중요 한 것 은 하나의 표 조작 이 아니 라 json 의 표 이름과 필드 에 따라 동적 으로 삽입 하 는 것 입 니 다) 데이터 베 이 스 를 사용 하 는 Oracle 입 니 다.
아래 에 코드 를 붙이다
 
자바 코드
/ / dataStr 는 
{ 
"tbl_pe_enterprise_record":[{"RECORD_ID":"1","AP_CHN_ADDRESS":"shachong","APPLY_DATE":"2019/12/31"},{"RECORD_ID":"2","AP_CHN_ADDRESS":"shachong2","APPLY_DATE":"2019/12/31"}],

"tbl_pe_imex_pestcert_r_rs":
[{"PDRGID":"1","PDRGNO":"shachong","PDBEGINDAY":"2019/12/31"},{"PDRGID":"2","PDRGNO":"shachong2","PDBEGINDAY":"2019/12/31"}]
}

Map>> dataListMap = 
JSON.parseObject(dataStr, new TypeReference>>>() {});
        Set>>> entries = dataListMap.entrySet();
        for (Map.Entry>> entry:entries) {
            String tableName = entry.getKey();
            List> dataList = entry.getValue();

            //  table     fileld
            Table query = new Table();
            query.setName(tableName);
            query.setStatus("0");
            List fields = fieldMapper.selectByTable(query);
            commonMapper.batchInsertData(tableName,fields,dataList);
        }

 
mapper 파일 은 다음 과 같 습 니 다.

    insert into ${tableName}
    
      ${item.name}
    
    SELECT t.* FROM (
    
      select
      
        
          to_date(#{data.${item.name}},'yyyy/MM/dd')
        
        
          #{data.${item.name}}
        
        
      
      from dual
    
    ) t
  

foreach 의 내장 순환 과 \ # {data. ${item. name} 을 기록 합 니 다.

좋은 웹페이지 즐겨찾기