Day 22: Memakai Tipe Data XMLType Melalui JDBC


Learning In HomeOriginal Date: 3 Februari 2009

Hari ini aku akan melakukan latihan bagaimana membaca tipe data XMLType dari program Java. Untuk itu, aku membutuhkan class oracle.xdb.XMLType yang terletak di %ORACLE_HOME%\rdbms\jlib\xdb.jar. Setelah itu, aku dapat memberikan kode untuk mengambil nilai XMLType, seperti berikut:


rs.next();
XMLType dataXML = 
  (XMLType) rs.getObject(1);
System.out.println(
  dataXML.getStringVal());

Untuk menambahkan record baru yang berisi data XML dalam bentuk XMLType, aku dapat menggunakan kode program seperti berikut ini:


OraclePreparedStatement ps = 
  (OraclePreparedStatement) 
  cn.prepareStatement(
  "INSERT INTO TBL_XML 
   (DATA_ID, DATA_XML) 
   VALUES (?,?)");
ps.setString(1, "ACC99");
XMLType xmlType = new XMLType(cn, 
  "<account id='acc99'><debet>

   <tanggal>01/02/2009</tanggal>
   <jumlah>1000</jumlah></debet>
   </account>");
ps.setObject(2, xmlType);
ps.execute();

Untuk men-update data XML, misalnya aku ingin mengubah record yang dibuat di atas dengan nilai elemen jumlah yang semula bernilai 1000 menjadi 2000, aku dapat menggunakan cara yang sama, misalnya seperti berikut:


XMLType dataXML = 
 (XMLType) rs.getObject(1);
Document doc = dataXML.getDOM();
 Element eAccount = 
doc.getDocumentElement();
 Element eDebet = (Element) 
eAccount.getFirstChild();
 Element eJumlah = (Element) 
eDebet.getLastChild();		
eJumlah.getFirstChild().
 setNodeValue("2000");
			
dataXML = new XMLType(cn, doc);
OraclePreparedStatement ps = 
 (OraclePreparedStatement) 
 cn.prepareStatement("UPDATE TBL_XML 
  SET DATA_XML = ? 
  WHERE DATA_ID = 'ACC99'");
ps.setObject(1, dataXML);
ps.execute();
rs.close();
ps.close();

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: