Day 17: XML SQL Utility (XSU)


Learning In HomeOriginal Date: 29 Januari 2009

XML SQL Utility (XSU) yang masih merupakan bagian dari Oracle XDK, dapat ditemukan di file xsu12.jar di direktori %ORACLE_HOME%\lib. Sebelum memulai menggunakan XSU, aku harus mengerti terlebih dahulu bagaimana melakukan mapping dari SQL ke XML dan sebaliknya.

Setiap baris di tabel akan di-representasi-kan dengan elemen ROW yang merupakan anak dari ROWSET. Jika sebuah tabel terdiri atas field EMPNO dan ENAME, maka hasil XML-nya akan berupa:


<?xml version='1.0'?>
<ROWSET>
 <ROW num="1">

   <EMPNO>1</EMPNO>
   <ENAME>Nama</ENAME>
 </ROW>
  ...
</ROWSET>

Sekarang, aku akan mulai mencoba utility command-line XSU yang berbasis Java. Sebelumnya, aku memastikan xsu12.jar, xmlparserv2.jar, xdb.jar dan classes12.jar (JDBC) sudah tercantum di CLASSPATH. Lalu, aku memberikan perintah berikut ini:


java OracleXML getXML -user "scott/tiger" "SELECT * FROM EMP WHERE ENAME='MARTIN'"

Hasil yang aku peroleh adalah:


<?xml version = '1.0'?>
<ROWSET>
 <ROW num="1">
  <EMPNO>7654</EMPNO>

  <ENAME>MARTIN</ENAME>
  <JOB>SALESMAN</JOB>
  <MGR>7698</MGR>
  <SAL>1312.5</SAL>

  <COMM>1400</COMM>
  <DEPTNO>30</DEPTNO>
  <RESUME></RESUME>
 </ROW>

</ROWSET>

Sebaliknya, jika aku memiliki dokumen XML dengan format seperti di atas, aku dapat memasukkannya ke dalam tabel di database, dengan perintah seperti:


java OracleXML putXML -user "scott/tiger" -filename "c:\\test.xml" "EMP"

Sekarang, aku akan mencoba untuk mendapatkan hasil query sebuah tabel dalam bentuk XML di dalam program Java, bukan lagi melalui utility command-line. Contoh kode program Java yang aku buat sebagai berikut:


try {
  OracleDataSource ods = new
     OracleDataSource();
  ods.setURL(
    "jdbc:oracle:oci:@
     localhost:1521:latihan");
  ods.setUser("scott");
  ods.setPassword("tiger");
  OracleConnection cn =
   (OracleConnection)
   ods.getConnection();

  OracleXMLQuery query = new
   OracleXMLQuery(cn,
   "SELECT * FROM EMP");
  System.out.println(query.
   getXMLString());
  query.close();

} catch (Exception e) {
  e.printStackTrace();
}

Dan sebaliknya, berikut ini adalah potongan kode program untuk menulis menerjemahkan data XML ke dalam tabel:


try {
 OracleDataSource ods = new
   OracleDataSource();
 ods.setURL("jdbc:oracle:oci:@
   localhost:1521:latihan");
 ods.setUser("scott");
 ods.setPassword("tiger");
 OracleConnection cn =
   (OracleConnection)
   ods.getConnection();

 OracleXMLSave xmlSave =
   new OracleXMLSave(cn, "EMP");

 String str = "<ROWSET><ROW>
  <EMPNO>101</EMPNO>

  <ENAME>TEST1</ENAME></ROW>
  <ROW><EMPNO>102</EMPNO>
  <ENAME>TEST2</ENAME></ROW>

  </ROWSET>";
 StringReader reader = new
   StringReader(str);
 xmlSave.insertXML(reader);

} catch (Exception e) {
  e.printStackTrace();
}

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: