WebRowSet 을 이용한 JDBC 활용하기 4부
ResultSet 가공하기
WebRowSet 클래스의 deleteRow() 메소드를 이용하여 특정 row의 데이터를 삭제할 수 있습니다.
비슷한 방법으로 특정 row의 값을 업데이트 하거나 이동할 수 있습니다.
코드 조각을 보면서 이야기 해 볼까요.
[code]
... ... ...
ResultSet rs = stmt.executeQuery("select * from student ");
WebRowSet wrs = new WebRowSetImpl();
wrs.populate(rs);
wrs.absolute(1); //첫번째 row로 커서를 옮깁니다.
wrs.deleteRow(); //커서가 위치한 row를 삭제합니다.
wrs.absolute(2); //두번째 row로 커서를 옮깁니다.
wrs.updateInt(4,20);//커서가 위치한 row의 4번째 컬럼 값을 20으로 변경합니다.
... ... ...
[/code]
코드의 처음 세줄은 ResultSet으로부터 WebRowSet을 만들어내고 있으며, 다음 두줄은 ResultSet의 데이터에서
첫번째 Row를 삭제하고 있습니다. 마지막 두줄은 두번째 Row의 4번째 Column값을 20으로 변경하고 있습니다.
위와같은 처리를 거친 결과의 data eliment는 아래와 같습니다.
[code]
<data>
<deleteRow>
<columnValue>200</columnValue>
<columnValue>Jack</columnValue>
<columnValue>Dakota</columnValue>
<columnValue>21</columnValue>
</deleteRow>
<currentRow>
<columnValue>100</columnValue>
<columnValue>John</columnValue>
<columnValue>Doe</columnValue>
<columnValue>26</columnValue>
<updateRow>20</updateRow>
</currentRow>
</data>
[/code]
xml의 결과를 보면 첫번째 row에 대해 <deleteRow> 태그를 이용하여 삭제된 row임을 표시하고
두번째 row에서 <updateRow> 태그를 이용하여 4번째 column이 26에서 20으로 업데이트 되었음을
나타내고 있습니다.
변경사항 Commit 하기
위에 살펴본 과정은 단지 ResultSet의 데이타를 가공했을 뿐으로 commit을 수행하기 전까지는
database에 변경된 값들이 반영되지 않습니다.
변경된 데이터를 database에 적용하기 위해 acceptChanges() 메소드를 이용할 수 있습니다.
[code]
... ... ...
wrs.acceptChanges();
... ... ...
[/code]
다음편에 계속..