WebRowSet 을 이용한 JDBC 활용하기 3부
ResultSet 출력하기
자. 이제 위의 예제코드의 ResultSet을 XML데이터로 변형 해 봅시다.
이를 위해 com.sun.rowset.WebRowSetImple 클래스를 이용할 수 있습니다.
위 예제 코드에 몇 라인의 코드를 추가함으로써 result set을 XML 파일로 출력 할 수 있습니다.
[code]
... ... ...
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();
}
... ... ...
[/code]
wrs.writeXML()의 출력형태는 WebRowSet scheme definition. 의 형태를 따르며
출력은 properties, metadata, data의 세 부분으로 구분 되어집니다.
일반적인 출력 레이아웃은 다음과 같습니다.
[code]
<?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>
[/code]
<properties> 태그는 provider( isolation leve, RowSet type 등)를 의미 합니다. <metadata> 태그는 해당 데이타베이스의 테이블의 갯수, 이름, 컬럼타입 등을 나타내며, 마지막으로 <data> 태그는 해당 테이블의 실제 정보를 기술합니다.
[code]
<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>
[/code]
위의 예에서 보이는 <currentRow> 태그는 WebRowSet의 각 Row에 저장되어있는 데이터를 나타냅니다. insert, update, delete같은 데이터 조작은 다음편에서 계속하겠습니다.