Bagikan melalui


Pemrograman dengan SQLXML

Unduh driver JDBC

Bagian ini menjelaskan cara menggunakan Driver Microsoft JDBC untuk metode API SQL Server untuk menyimpan dan mengambil dokumen XML di dalam dan dari database relasional dengan objek SQLXML.

Bagian ini juga berisi informasi tentang jenis objek SQLXML dan menyediakan daftar pedoman dan batasan penting saat menggunakan objek SQLXML.

Membaca dan menulis data XML dengan objek SQLXML

Daftar berikut menjelaskan cara menggunakan Driver Microsoft JDBC untuk metode API SQL Server untuk membaca dan menulis data XML dengan objek SQLXML:

  • Untuk membuat objek SQLXML, gunakan metode createSQLXML dari kelas SQLServerConnection . Perhatikan bahwa metode ini membuat objek SQLXML tanpa data apa pun. Untuk menambahkan data xml ke objek SQLXML, panggil salah satu metode berikut yang ditentukan dalam antarmuka SQLXML: setResult, setCharacterStream, setBinaryStream, atau setString.

  • Untuk mengambil objek SQLXML itu sendiri, gunakan metode getSQLXML dari kelas SQLServerResultSet atau kelas SQLServerCallableStatement .

  • Untuk mengambil data xml dari objek SQLXML, gunakan salah satu metode berikut yang ditentukan dalam antarmuka SQLXML: getSource, getCharacterStream, getBinaryStream, atau getString.

  • Untuk memperbarui data xml dalam objek SQLXML, gunakan metode updateSQLXML dari kelas SQLServerResultSet .

  • Untuk menyimpan objek SQLXML di kolom tabel database xml jenis, gunakan metode setSQLXML dari kelas SQLServerPreparedStatement atau kelas SQLServerCallableStatement .

Contoh kode dalam sampel jenis data SQLXML menunjukkan cara melakukan tugas API umum ini.

Objek SQLXML yang dapat dibaca dan dapat ditulis

Tabel berikut mencantumkan jenis objek SQLXML mana yang didukung oleh metode setter, getter, dan updater yang disediakan oleh JDBC API. Kolom dalam tabel mengacu pada hal berikut:

Nama Metode Objek Getter SQLXML

(Dapat dibaca)
Setter Objek SQLXML

(Bisa-tulis)
CallableStatement.setSQLXML() Tidak Didukung Didukung
CallableStatement.setObject() Tidak Didukung Didukung
PreparedStatement.setSQLXML() Tidak Didukung Didukung
PreparedStatement.setObject() Tidak Didukung Didukung
ResultSet.updateSQLXML() Tidak Didukung Didukung
ResultSet.updateObject() Tidak Didukung Didukung
ResultSet.getSQLXML() Didukung Tidak Didukung
CallableStatement.getSQLXML() Didukung Tidak Didukung

Seperti yang ditunjukkan pada tabel di atas, metode setter SQLXML tidak akan berfungsi dengan objek SQLXML yang dapat dibaca; demikian pula, metode getter tidak akan berfungsi dengan objek SQLXML bisa-tulis.

Jika aplikasi memanggil metode setObject dengan menentukan parameter skala atau panjang dengan objek SQLXML, parameter skala atau panjang diabaikan.

Panduan dan batasan saat menggunakan objek SQLXML

Aplikasi dapat menggunakan objek SQLXML untuk membaca dan menulis data XML dari dan ke database. Daftar berikut ini menyediakan informasi tentang batasan dan panduan tertentu saat menggunakan objek SQLXML:

  • Objek SQLXML hanya dapat valid selama durasi transaksi yang dibuat.

  • Objek SQLXML yang diterima dari metode getter hanya dapat digunakan untuk membaca data.

  • Objek SQLXML yang dibuat oleh objek koneksi hanya dapat digunakan untuk menulis data.

  • Aplikasi hanya dapat memanggil satu metode getter pada objek SQLXML yang dapat dibaca untuk membaca data. Setelah metode getter dipanggil, semua metode getter atau setter lainnya pada objek SQLXML yang sama gagal.

  • Aplikasi hanya dapat memanggil metode gratis pada objek SQLXML setelah dibaca atau ditulis. Namun, masih dimungkinkan untuk memproses aliran atau sumber yang dikembalikan selama kolom atau parameter yang mendasar aktif. Jika kolom atau parameter yang mendasar menjadi tidak aktif, aliran atau sumber yang terkait dengan objek SQLXML akan ditutup. Jika kolom atau parameter yang mendasar tidak lagi valid, data yang mendasar tidak akan tersedia untuk pengalih Stream, Simple API for XML (SAX), dan Streaming API untuk XML (StAX).

  • Aplikasi hanya dapat memanggil satu metode setter pada objek SQLXML yang dapat ditulis. Setelah metode setter dipanggil, semua metode setter atau getter lainnya pada objek SQLXML yang sama gagal.

  • Untuk mengatur data pada objek SQLXML, aplikasi harus menggunakan metode setter yang sesuai dan fungsi dalam objek yang dikembalikan.

  • Metode getSQLXML dari kelas SQLServerCallableStatement dan kelas SQLServerResultSet mengembalikan data null jika kolom yang mendasarinya null.

  • Objek setter dapat valid melalui koneksi tempat objek dibuat.

  • Aplikasi tidak diizinkan untuk mengatur nilai null dengan menggunakan metode setter yang disediakan oleh antarmuka SQLXML. Aplikasi dapat mengatur string kosong ("") dengan menggunakan metode setter yang disediakan di antarmuka SQLXML. Untuk mengatur nilai null , aplikasi harus memanggil salah satu hal berikut:

  • Saat bekerja dengan dokumen XML, sebaiknya gunakan parser Simple API for XML (SAX) dan Streaming API for XML (StAX) alih-alih pengurai Document Object Model (DOM) karena alasan performa.

Pengurai XML tidak dapat menangani nilai kosong. Namun, SQL Server memungkinkan aplikasi untuk mengambil dan menyimpan nilai kosong dari dan ke kolom database dari jenis data XML. Itu berarti bahwa saat mengurai data XML, jika nilai yang mendasar kosong, pengecualian dilemparkan oleh pengurai. Untuk output DOM, driver JDBC menangkap pengecualian tersebut dan melemparkan kesalahan. Untuk output SAX dan Stax, kesalahan berasal dari parser secara langsung.

Buffering adaptif dan dukungan SQLXML

Aliran biner dan karakter yang dikembalikan oleh objek SQLXML mematuhi mode buffering adaptif atau penuh. Di sisi lain, jika pengurai XML bukan aliran, pengurai XML tidak akan mematuhi pengaturan adaptif atau penuh. Untuk informasi selengkapnya tentang buffering adaptif, lihat Menggunakan Buffering Adaptif.

Lihat juga

Mendukung data XML