일부 응답을 얻은 후, 현재 팁은 http://www.ibm.com/developerworks/xml/library/x-tipbigdoc5.html (Listing 1. ResultSet을 XML로 변환) 및 XMLWriter for Java를 http://www.megginson.com/downloads/ 에서 사용하고있다. 기본적으로 데이터베이스에서 날짜를 읽고 문자로 파일에 씁니다. 열 이름을 사용하여 열기 및 닫기 태그를 만듭니다. 그렇게하는 동안 입력 스트림, 즉 날짜와 숫자를 두 가지 변경해야합니다.데이터베이스에서 대량의 데이터를 XML로 저장할 수있는 방법 (속도 문제, 제 3 부)
// Iterate over the set
while (rs.next()) {
w.startElement("row");
for (int i = 0; i < count; i++) {
Object ob = rs.getObject(i + 1);
if (rs.wasNull()) {
ob = null;
}
String colName = meta.getColumnLabel(i + 1);
if (ob != null) {
if (ob instanceof Timestamp) {
w.dataElement(colName, Util.formatDate((Timestamp)ob, dateFormat));
}
else if (ob instanceof BigDecimal){
w.dataElement(colName, Util.transformToHTML(new Integer(((BigDecimal)ob).intValue())));
}
else {
w.dataElement(colName, ob.toString());
}
} else {
w.emptyElement(colName);
}
}
w.endElement("row");
}
결과가 to_number
명령 (예컨대 to_number(sif.ID) ID
) 및 to_date
명령 (예컨대 TO_DATE (sif.datum_do, 'DD.MM.RRRR') datum_do
)이 SQL 얻는다. 문제는 반환하는 날짜가 타임 스탬프이므로 즉, dd.mm.yyyy
형식으로 서식을 지정해야하므로 14.02.2010
이 아니라 14.02.2010 00:00:000
이되는 것을 의미합니다. 두 번째 문제는 숫자입니다. 웬일인지, 그들은 데이터베이스에 varchar2
와 같은 스트립 된 필요가 선행 0을 가질 수 있습니다;
public static String transformToHTML(Integer number) {
String result = "";
try {
result = number.toString();
} catch (Exception e) {}
return result;
} 내가 알고 싶습니다 무엇
가 이다 : 나는 Util.transformToHTML
불필요한 그래서 나는 trim
기능 내 SQL에서 그렇게 할 수 같은데요 (설명을 위해, 여기에 방법입니다) a) 원하는 형식으로 날짜를 가져와 추가 처리를 건너 뛸 수 있으므로 처리 시간을 단축 할 수 있습니까? b) 더 좋은 방법이 있나요? 우리는 50MB - 250MB 파일 크기 범주에있는 XML 파일에 대해 이야기하고 있습니다.
나는 그것을 조사 할 것이다, tnx. – Andrija