WebRowSet 을 이용한 JDBC 활용하기 3부

ResultSet 출력하기


자. 이제 위의 예제코드의 ResultSet을 XML데이터로 변형 해 봅시다.
이를 위해 com.sun.rowset.WebRowSetImple 클래스를 이용할 수 있습니다.
위 예제 코드에 몇 라인의 코드를 추가함으로써 result set을 XML 파일로 출력 할 수 있습니다.


... ... ...
ResultSet rs = stmt.executeQuery("select * from student");
WebRowSet wrs = new WebRowSetImpl();
wrs.populate(rs);
try {
wrs.writeXml(
new FileOutputStream("student.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
... ... ...


wrs.writeXML()의 출력형태는 WebRowSet scheme definition. 의 형태를 따르며
출력은 properties, metadata, data의 세 부분으로 구분 되어집니다.
일반적인 출력 레이아웃은 다음과 같습니다.


<?xml version="1.0"?>
<webRowSet xmlns= "http://java.sun.com/xml/ns/jdbc(새 창으로 열기)"
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance(새 창으로 열기)"
xsi:schemaLocation= "http://java.sun.com/xml/ns/jdbc(새 창으로 열기)
http://java.sun.com/xml/ns/jdbc/webrowset.xsd(새 창으로 열기)">
<properties>
... ... ...
</properties>
<metadata>
... ... ...
</metadata>
<data>
... ... ...
</data>
</webRowSet>


<properties> 태그는 provider( isolation leve, RowSet type 등)를 의미 합니다. <metadata> 태그는 해당 데이타베이스의 테이블의 갯수, 이름, 컬럼타입 등을 나타내며, 마지막으로 <data> 태그는 해당 테이블의 실제 정보를 기술합니다.


<data>
<currentRow>
<columnValue>200 < /columnValue>
<columnValue>Jack</columnValue>
<columnValue>Dakota</columnValue>
<columnValue>21</columnValue>
</currentRow>
<currentRow>
<columnValue>100</columnValue>
<columnValue>John</columnValue>
<columnValue>Doe</columnValue>
<columnValue>26</columnValue>
</currentRow>
</data>


위의 예에서 보이는 <currentRow> 태그는 WebRowSet의 각 Row에 저장되어있는 데이터를 나타냅니다. insert, update, delete같은 데이터 조작은 다음편에서 계속하겠습니다.

이 글의 관련글
  • 대칭키를 이용한 암호화와 복호화
  • JAVA Base64 Encoding / Decoding
  • Java 7 로드맵 업데이트와 커뮤니티의 반응. (2)
  • String 타입의 날짜를 Date 타입으로 변환하기
  • CookieHandler를 이용한 쿠키 관리
  • 윈도우 서비스모드로 설치한 톰캣 4의 설정 변경하기
  • 자바 제한자 정리 : Modifires Matrix in Java
  • 컴포넌트 시스템과 클래스 로더 경계 :: Java Class Loader
  • JMS ( Java Messaging System ) :: 자바 메세징 시스템
  • 2008/11/11 13:03 2008/11/11 13:03
    Trackback Address:http://www.yunsobi.com/blog/trackback/435
    [로그인][오픈아이디란?]