Fitur internasional driver JDBC

Unduh driver JDBC

Fitur internasionalisasi Driver Microsoft JDBC untuk SQL Server mencakup item berikut:

  • Dukungan untuk pengalaman yang sepenuhnya dilokalkan dalam bahasa yang sama dengan SQL Server
  • Dukungan untuk konversi bahasa Java untuk data SQL Server sensitif lokal
  • Dukungan untuk bahasa internasional, terlepas dari sistem operasi
  • Dukungan untuk nama domain internasional (dimulai dengan Microsoft JDBC Driver 6.0 untuk SQL Server)

Penanganan data karakter

Data karakter di Java ditangani sebagai Unicode secara default; objek Java String mewakili data karakter Unicode. Dalam driver JDBC, satu-satunya pengecualian untuk aturan ini adalah metode pengalih aliran ASCII dan setter, yang merupakan kasus khusus karena menggunakan aliran byte dengan asumsi implisit dari satu halaman kode terkenal (ASCII).

Selain itu, driver JDBC menyediakan properti string koneksi sendStringParametersAsUnicode . Properti ini dapat digunakan untuk menentukan bahwa parameter yang disiapkan untuk data karakter dikirim sebagai ASCII atau Multi-byte Character Set (MBCS) alih-alih Unicode. Untuk informasi selengkapnya tentang properti string koneksi sendStringParametersAsUnicode , lihat Mengatur Properti Koneksi.

Konversi masuk driver

Data teks Unicode yang berasal dari server tidak harus dikonversi. Ini diteruskan langsung sebagai Unicode. Data non-Unicode yang berasal dari server dikonversi dari halaman kode untuk data, di tingkat database atau kolom, ke Unicode. Driver JDBC menggunakan rutinitas konversi Java Virtual Machine (JVM) untuk melakukan konversi ini. Konversi ini dilakukan pada semua metode getter String dan Character stream yang ditik.

Jika JVM tidak memiliki dukungan halaman kode yang tepat untuk data dari database, driver JDBC melemparkan pengecualian "halaman kode XXX yang tidak didukung oleh lingkungan Java". Untuk mengatasi masalah ini, Anda harus menginstal dukungan karakter internasional penuh yang diperlukan untuk JVM tersebut.

Konversi keluar driver

Data karakter yang berasal dari driver ke server dapat berupa ASCII atau Unicode. Misalnya, metode karakter nasional JDBC 4.0 baru, seperti setNString, setNCharacterStream, dan metode setNClob dari kelas SQLServerPreparedStatement dan SQLServerCallableStatement , selalu kirim nilai parameternya ke server di Unicode.

Di sisi lain, metode API karakter non-nasional, seperti setString, setCharacterStream, dan setClob metode SQLServerPreparedStatement dan kelas SQLServerCallableStatement mengirim nilainya ke server di Unicode hanya ketika properti sendStringParametersAsUnicode diatur ke "true", yang merupakan nilai default.

Parameter non-unicode

Untuk performa optimal dengan jenis parameter non-Unicode CHAR, VARCHAR , atau LONGVARCHAR , atur properti string koneksi sendStringParametersAsUnicode ke "false" dan gunakan metode karakter non-nasional.

Masalah pemformatan

Untuk tanggal, waktu, dan mata uang, semua pemformatan dengan data yang dilokalkan dilakukan pada tingkat bahasa Java menggunakan objek Lokal; dan berbagai metode pemformatan untuk jenis data Tanggal, Kalender, dan Angka . Dalam kasus yang jarang terjadi di mana driver JDBC harus meneruskan data sensitif lokal dalam format yang dilokalkan, formatter yang tepat digunakan dengan lokal JVM default.

Dukungan kolase

Driver JDBC 3.0 mendukung semua kolase yang didukung oleh SQL Server 2000 (8.x), SQL Server 2005 (9.x), dan kolase baru atau versi baru nama kolase Windows yang diperkenalkan dalam SQL Server 2008 (10.0.x).

Untuk informasi selengkapnya tentang kolase, lihat Kolase dan Dukungan Unicode dan Nama Kolase Windows (Transact-SQL).

Menggunakan nama domain Internasional (IDN)

Driver JDBC 6.0 untuk SQL Server mendukung penggunaan Nama Domain Internasional (IDN) dan dapat mengonversi ServerName Unicode menjadi pengodean yang kompatibel dengan ASCII (Punycode) saat diperlukan selama koneksi. Jika IDN disimpan dalam Sistem Nama Domain (DNS) sebagai string ASCII dalam format Punycode (ditentukan oleh RFC 3490), aktifkan konversi nama server Unicode dengan mengatur properti serverNameAsACE ke true. Jika tidak, jika layanan DNS dikonfigurasi untuk memungkinkan penggunaan karakter Unicode, atur properti serverNameAsACE sebagai false (default). Untuk versi driver JDBC yang lebih lama, dimungkinkan juga untuk mengonversi serverName ke Punycode menggunakan metode IDN.toASCII Java sebelum mengatur properti tersebut untuk koneksi.

Catatan

Sebagian besar perangkat lunak resolver yang ditulis untuk platform non-Windows didasarkan pada standar Internet DSN dan oleh karena itu kemungkinan besar menggunakan format Punycode untuk IDN, sementara Server DNS berbasis Windows pada jaringan privat dapat dikonfigurasi untuk memungkinkan penggunaan karakter UTF-8 per server. Untuk informasi selengkapnya, lihat Dukungan karakter Unicode.

Lihat juga

Gambaran umum driver JDBC