ibatis- 대량 삽입 (대상 맵 돌리기)

2434 단어 ibatis
장면
대상에list 대상이 있습니다. item 기록이 필요합니다.
위 코드:
모델 대상
AdvClearRecordInfo.java
public class AdvClearRecordInfo extends BaseRecordInfo{
	private List advClearRecords;
}

대상
AdvClearRecordDao.java
4
public class AdvClearRecordDao extends SqlMapClientTemplate{
	
	public Object saveAdvClearRecordInfo(AdvClearRecordInfo advClearRecordInfo) {
		try {
			//   map
			Map map = ObjectMapUtil.getObjectMap(advClearRecordInfo);
			//    
			map.put("tableSuffix", "_" + DateFormatUtils.format(advClearRecordInfo.getCreateTime(), ObjectMapUtil.DAY_PATTERN));
	       
			Long id = (Long)this.insert("saveAdvClearRecordInfo", map);
			return id;
		} catch (Exception e) {
			logger.error("saveAdvClearRecordInfo fail:",e);
            throw new RuntimeException(e);
		}
	}
}
여기서 대상을 맵으로 돌리는 방법을 사용했다.
대상 맵
public static Map getObjectMap(Object object){
    	Map map = new HashMap();
        try {
        	/**
        	 *  :boolean   is  ,          
        	 *  :isVerifySmsc  set   setVerifySmsc,    verifySmsc
        	 */
            BeanWrapper beanWrapper = new BeanWrapperImpl(object);
            PropertyDescriptor[] descriptors = beanWrapper.getPropertyDescriptors();
            for (PropertyDescriptor descriptor : descriptors) {
                map.put(descriptor.getName(), beanWrapper.getPropertyValue(descriptor.getName()));
            }
            
            return map;
            
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

sqlMap 구성
AdvClearRecordDao.xml




  
    
        INSERT INTO tbl_adv_clear_record$tableSuffix$(
        	req_seq,
         	action_time,
         	
         	height, width,
         	create_time
        )
        VALUES 
        
        (	
        	#advClearRecords[].reqSeq#,
        	#advClearRecords[].actionTime#, 
        	
        	#terminalInfo.height#, #terminalInfo.width#,
        	#createTime#
        )
        
        ;
        
            SELECT lastval() AS id
        
    
    
 

좋은 웹페이지 즐겨찾기