@Override
	public void batchInsertArtificialData(String tableName,
		List<String> columnNames, List<List<String>> datas, String DB_NUM) throws CustomerizedException{		
		String sqlInsert = "";
		String columnNamesStr = "";
		String values = "";
//build insert SQL
		int count = 0;
		for(String columnName:columnNames){
			count++;
			if(count!=columnNames.size()){
				columnNamesStr+=columnName+",";
				values+="?"+",";
			}else{
				columnNamesStr+=columnName;
				values+="?";
			}			
		}
		sqlInsert = "INSERT INTO "+tableName+" ("
				+columnNamesStr+")"+" VALUES("+values+")";
		if(this.conn != null){
		long startTime = System.currentTimeMillis();
		log.info("Start to INSERT man-made datas into ["+tableName+"]");		
//设置回滚机制				
		PreparedStatement prest;
		try {
			conn.setAutoCommit(false); 
			prest = conn.prepareStatement(sqlInsert,ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
			for(List<String> lines:datas){
				for(int i=0;i<lines.size();i++){
					prest.setString(i+1,lines.get(i));
				}
				prest.addBatch();
			}
			prest.executeBatch();
			prest.clearBatch();
			conn.commit();
			prest.close();
		} catch (SQLException e) {
			log.error("Batch insert Man-Made data meet trouble,err: "+e.getLocalizedMessage());
		}
		long endTime =System.currentTimeMillis() - startTime;
		log.info("Finishing to INSERT man-made datas into ["+tableName+"],time costing: "+endTime+" ms");
	}
	}