Jika Anda ingin menggunakan koneksi JDBC ke database, Anda harus menginstal driver JDBC terlebih dahulu. Pengiriman PL4x tidak mengandung driver JDBC. Anda harus mengunduh sendiri setiap driver yang diperlukan dan menerima perjanjian lisensi. Untuk menginstal driver JDBC untuk PL4x, ikuti petunjuk ini Show
Unduh driver JDBC atau temukan di instalasi basis data. Berikut adalah beberapa URL unduhan untuk driver JDBC umum Salin file jar driver JDBC ke direktori /lib/modules Driver JDBC Anda sekarang dapat digunakan dari pemetaan PL4x dan skrip pengujian Saya hanya memiliki akses pengembang PI sehingga driver JDBC harus diinstal oleh administrator. Jadi pertanyaan saya adalah apakah kami memiliki cara mudah untuk memeriksa apakah driver JDBC sudah terinstal dengan benar dengan mempertimbangkan batasan otorisasi saya? Di adaptor penerima JDBC saya menggunakan oracle. jdbc. sopir. OracleDriver sebagai parameter Driver JDBC Kesalahan yang saya miliki dalam pemantauan SAP PI untuk adaptor JDBC Tidak dapat membuat sumber daya gabungan baru. DriverManagerException. Tidak dapat membuat koneksi dengan driver terdaftar. peramal. jdbc. sopir. OracleDriver kembali. peramal. jdbc. sopir. OracleDriver. . ClassNotFoundException. peramal. jdbc. sopir. OracleDriver Bab ini membahas kompatibilitas versi driver Oracle Java Database Connectivity (JDBC), versi database, dan versi Java Development Kit (JDK). Ini juga menjelaskan dasar-dasar pengujian instalasi dan konfigurasi klien dan menjalankan aplikasi sederhana. Bab ini berisi bagian-bagian berikut Kompatibilitas Versi untuk Driver Oracle JDBCBagian ini membahas masalah kompatibilitas versi JDBC umum Kompatibilitas terbalik Driver JDBC disertifikasi untuk bekerja dengan versi Oracle Database yang saat ini didukung. Misalnya, driver JDBC Thin di Oracle Database 11g Release 2 (11. 2) disertifikasi untuk bekerja dengan 10. 2. x, 10. 1. x, 9. 2. x, dan 9. 0. 1. x rilis Oracle Database. Namun, mereka tidak disertifikasi untuk bekerja dengan rilis database lama yang tidak didukung, seperti 8. 0. x dan 7. x Kompatibilitas Maju Driver JDBC yang ada dan didukung disertifikasi untuk bekerja dengan Oracle Database 11g Rilis 2 (11. 2) Verifikasi Instalasi Klien JDBCUntuk memverifikasi penginstalan klien JDBC, Anda harus melakukan semua hal berikut Pemasangan driver Oracle JDBC bersifat khusus platform. Ikuti petunjuk penginstalan untuk driver yang ingin Anda instal di dokumentasi khusus platform Anda Bagian ini menjelaskan langkah-langkah untuk memverifikasi penginstalan driver JDBC klien Oracle, dengan asumsi bahwa Anda telah menginstal driver pilihan Anda Jika Anda telah menginstal driver JDBC Thin, maka tidak diperlukan instalasi lebih lanjut di komputer klien Catatan Driver JDBC Thin memerlukan pendengar TCP/IP untuk berjalan di komputer tempat database diinstalJika Anda telah menginstal driver JDBC Oracle Call Interface (OCI), maka Anda juga harus menginstal perangkat lunak klien Oracle. Ini termasuk Oracle Net dan perpustakaan OCI Periksa Direktori dan File yang DiinstalMenginstal produk Oracle Java membuat, antara lain, direktori berikut
Periksa apakah direktori dan file berikut telah dibuat dan diisi di direktori CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT;3 CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT;4
Periksa apakah direktori berikut telah dibuat dan diisi di direktori CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT;3 CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT;6
Periksa Variabel LingkunganBagian ini menjelaskan variabel lingkungan yang harus diatur untuk driver JDBC OCI dan driver JDBC Thin, dengan fokus pada platform Sun Solaris, Linux, dan Microsoft Windows Anda harus menyetel variabel lingkungan /* * This sample can be used to check the JDBC installation. * Just run it and provide the connect information. It will select * "Hello World" from the database. */ // You need to import the java.sql and JDBC packages to use JDBC import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // We import java.io to be able to read from the command line import java.io.*; class JdbcCheckup { public static void main(String args[]) throws SQLException, IOException { // Prompt the user for connect information System.out.println("Please enter information to test connection to the database"); String user; String password; String database; user = readEntry("user: "); int slash_index = user.indexOf('/'); if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); } else password = readEntry("password: "); database = readEntry("database(a TNSNAME entry): "); System.out.print("Connecting to the database..."); System.out.flush(); System.out.println("Connecting..."); // Open an OracleDataSource and get a connection OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:oci:@" + database); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("connected."); // Create a statement Statement stmt = conn.createStatement(); // Do the SQL "Hello World" thing ResultSet rset = stmt.executeQuery("select 'Hello World' from dual"); while (rset.next()) System.out.println(rset.getString(1)); // close the result set, the statement and the connection rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } // Utility function to read a line from standard input static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); int c = System.in.read(); while (c != '\n' && c != -1) { buffer.append((char)c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e) { return ""; } } }_7 untuk driver JDBC OCI atau Thin yang terinstal. Sertakan yang berikut ini dalam variabel lingkungan /* * This sample can be used to check the JDBC installation. * Just run it and provide the connect information. It will select * "Hello World" from the database. */ // You need to import the java.sql and JDBC packages to use JDBC import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // We import java.io to be able to read from the command line import java.io.*; class JdbcCheckup { public static void main(String args[]) throws SQLException, IOException { // Prompt the user for connect information System.out.println("Please enter information to test connection to the database"); String user; String password; String database; user = readEntry("user: "); int slash_index = user.indexOf('/'); if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); } else password = readEntry("password: "); database = readEntry("database(a TNSNAME entry): "); System.out.print("Connecting to the database..."); System.out.flush(); System.out.println("Connecting..."); // Open an OracleDataSource and get a connection OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:oci:@" + database); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("connected."); // Create a statement Statement stmt = conn.createStatement(); // Do the SQL "Hello World" thing ResultSet rset = stmt.executeQuery("select 'Hello World' from dual"); while (rset.next()) System.out.println(rset.getString(1)); // close the result set, the statement and the connection rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } // Utility function to read a line from standard input static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); int c = System.in.read(); while (c != '\n' && c != -1) { buffer.append((char)c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e) { return ""; } } }_7 ORACLE_HOME/jdbc/lib/ojdbc5.jar ORACLE_HOME/jlib/orai18n.jar Catatan Jika Anda menggunakan fitur JTA dan fitur JNDI, maka Anda harus menentukan/* * This sample can be used to check the JDBC installation. * Just run it and provide the connect information. It will select * "Hello World" from the database. */ // You need to import the java.sql and JDBC packages to use JDBC import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // We import java.io to be able to read from the command line import java.io.*; class JdbcCheckup { public static void main(String args[]) throws SQLException, IOException { // Prompt the user for connect information System.out.println("Please enter information to test connection to the database"); String user; String password; String database; user = readEntry("user: "); int slash_index = user.indexOf('/'); if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); } else password = readEntry("password: "); database = readEntry("database(a TNSNAME entry): "); System.out.print("Connecting to the database..."); System.out.flush(); System.out.println("Connecting..."); // Open an OracleDataSource and get a connection OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:oci:@" + database); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("connected."); // Create a statement Statement stmt = conn.createStatement(); // Do the SQL "Hello World" thing ResultSet rset = stmt.executeQuery("select 'Hello World' from dual"); while (rset.next()) System.out.println(rset.getString(1)); // close the result set, the statement and the connection rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } // Utility function to read a line from standard input static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); int c = System.in.read(); while (c != '\n' && c != -1) { buffer.append((char)c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e) { return ""; } } }4 dan /* * This sample can be used to check the JDBC installation. * Just run it and provide the connect information. It will select * "Hello World" from the database. */ // You need to import the java.sql and JDBC packages to use JDBC import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // We import java.io to be able to read from the command line import java.io.*; class JdbcCheckup { public static void main(String args[]) throws SQLException, IOException { // Prompt the user for connect information System.out.println("Please enter information to test connection to the database"); String user; String password; String database; user = readEntry("user: "); int slash_index = user.indexOf('/'); if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); } else password = readEntry("password: "); database = readEntry("database(a TNSNAME entry): "); System.out.print("Connecting to the database..."); System.out.flush(); System.out.println("Connecting..."); // Open an OracleDataSource and get a connection OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:oci:@" + database); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("connected."); // Create a statement Statement stmt = conn.createStatement(); // Do the SQL "Hello World" thing ResultSet rset = stmt.executeQuery("select 'Hello World' from dual"); while (rset.next()) System.out.println(rset.getString(1)); // close the result set, the statement and the connection rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } // Utility function to read a line from standard input static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); int c = System.in.read(); while (c != '\n' && c != -1) { buffer.append((char)c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e) { return ""; } } }5 dalam variabel lingkungan /* * This sample can be used to check the JDBC installation. * Just run it and provide the connect information. It will select * "Hello World" from the database. */ // You need to import the java.sql and JDBC packages to use JDBC import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // We import java.io to be able to read from the command line import java.io.*; class JdbcCheckup { public static void main(String args[]) throws SQLException, IOException { // Prompt the user for connect information System.out.println("Please enter information to test connection to the database"); String user; String password; String database; user = readEntry("user: "); int slash_index = user.indexOf('/'); if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); } else password = readEntry("password: "); database = readEntry("database(a TNSNAME entry): "); System.out.print("Connecting to the database..."); System.out.flush(); System.out.println("Connecting..."); // Open an OracleDataSource and get a connection OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:oci:@" + database); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("connected."); // Create a statement Statement stmt = conn.createStatement(); // Do the SQL "Hello World" thing ResultSet rset = stmt.executeQuery("select 'Hello World' from dual"); while (rset.next()) System.out.println(rset.getString(1)); // close the result set, the statement and the connection rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } // Utility function to read a line from standard input static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); int c = System.in.read(); while (c != '\n' && c != -1) { buffer.append((char)c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e) { return ""; } } }7 Anda Pengemudi JDBC OCI Jika Anda menginstal driver JDBC OCI, Anda juga harus menetapkan nilai berikut untuk variabel lingkungan path library
Semua program demonstrasi JDBC OCI dapat dijalankan dalam mode Klien Instan dengan menyertakan pustaka bersama data Klien Instan JDBC OCI pada variabel lingkungan jalur pustaka Driver Tipis JDBC Jika Anda menginstal driver JDBC Thin, Anda tidak perlu mengatur variabel lingkungan lainnya. Namun, untuk menggunakan driver Thin sisi server JDBC, Anda perlu mengatur izin Mengatur Izin untuk Driver Tipis Sisi Server Driver Thin sisi server JDBC membuka soket untuk koneksinya ke database. Karena Oracle Database memberlakukan model keamanan Java, pemeriksaan dilakukan untuk objek OracleDataSource ods = new OracleDataSource(); ods.setURL(url); ods.setUser(user); ods.setPassword(password);9 Untuk menggunakan driver Thin sisi server JDBC, pengguna yang terhubung harus diberikan izin yang sesuai. Berikut adalah contoh bagaimana izin dapat diberikan untuk pengguna OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();0 CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; Perhatikan bahwa OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();1 di OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();2 panggilan harus dalam huruf besar. Tanda bintang ( OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();_3) adalah sebuah pola. Anda dapat membatasi pengguna dengan memberikan izin untuk terhubung hanya ke komputer atau port tertentu Pastikan Kode Java Dapat Dikompilasi dan DijalankanUntuk memastikan lebih lanjut bahwa Java telah diatur dengan benar di sistem klien Anda, buka direktori javac java2 di bawah direktori CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT;3 OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();6. Sekarang, ketikkan perintah berikut pada baris perintah, satu demi satu, untuk melihat apakah kompiler Java dan juru bahasa Java berjalan tanpa kesalahan javac java Setiap perintah sebelumnya harus menampilkan daftar opsi dan parameter lalu keluar. Idealnya, pastikan Anda dapat mengkompilasi dan menjalankan program uji sederhana, seperti OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();7 Tentukan Versi Driver JDBCAnda dapat menentukan versi driver JDBC yang Anda instal, dengan memanggil metode OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();8 dari kelas OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();9 Kode contoh berikut menunjukkan cara menentukan versi driver import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; class JDBCVersion { public static void main (String args[]) throws SQLException { OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:thin:scott/tiger@::"); Connection conn = ods.getConnection(); // Create Oracle DatabaseMetaData object DatabaseMetaData meta = conn.getMetaData(); // gets driver info: System.out.println("JDBC driver version is " + meta.getDriverVersion()); } } Anda juga dapat menentukan versi driver JDBC dengan menjalankan perintah berikut
Uji JDBC dan Koneksi DatabaseDirektori javac java_2 berisi contoh program untuk driver Oracle JDBC tertentu. Salah satu program, String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection();3, dirancang untuk menguji JDBC dan koneksi database. Program menanyakan nama pengguna, kata sandi, dan nama database yang ingin Anda sambungkan. Program terhubung ke database, meminta string " String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection();4", dan mencetaknya ke layar Pergi ke direktori javac java2, dan kompilasi dan jalankan program String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection();3. Jika hasil kueri dicetak tanpa error, berarti instalasi Java dan JDBC Anda sudah benar Meskipun String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection();3 adalah program sederhana, ini menunjukkan beberapa fungsi penting dengan melakukan hal berikut
Program String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection();_3, yang menggunakan driver JDBC OCI, adalah sebagai berikut /* * This sample can be used to check the JDBC installation. * Just run it and provide the connect information. It will select * "Hello World" from the database. */ // You need to import the java.sql and JDBC packages to use JDBC import java.sql.*; import oracle.jdbc.*; import oracle.jdbc.pool.OracleDataSource; // We import java.io to be able to read from the command line import java.io.*; class JdbcCheckup { public static void main(String args[]) throws SQLException, IOException { // Prompt the user for connect information System.out.println("Please enter information to test connection to the database"); String user; String password; String database; user = readEntry("user: "); int slash_index = user.indexOf('/'); if (slash_index != -1) { password = user.substring(slash_index + 1); user = user.substring(0, slash_index); } else password = readEntry("password: "); database = readEntry("database(a TNSNAME entry): "); System.out.print("Connecting to the database..."); System.out.flush(); System.out.println("Connecting..."); // Open an OracleDataSource and get a connection OracleDataSource ods = new OracleDataSource(); ods.setURL("jdbc:oracle:oci:@" + database); ods.setUser(user); ods.setPassword(password); Connection conn = ods.getConnection(); System.out.println("connected."); // Create a statement Statement stmt = conn.createStatement(); // Do the SQL "Hello World" thing ResultSet rset = stmt.executeQuery("select 'Hello World' from dual"); while (rset.next()) System.out.println(rset.getString(1)); // close the result set, the statement and the connection rset.close(); stmt.close(); conn.close(); System.out.println("Your JDBC installation is correct."); } // Utility function to read a line from standard input static String readEntry(String prompt) { try { StringBuffer buffer = new StringBuffer(); System.out.print(prompt); System.out.flush(); int c = System.in.read(); while (c != '\n' && c != -1) { buffer.append((char)c); c = System.in.read(); } return buffer.toString().trim(); } catch(IOException e) { return ""; } } } Langkah Dasar di JDBCSetelah memverifikasi penginstalan klien JDBC, Anda dapat mulai membuat aplikasi JDBC. Saat menggunakan driver Oracle JDBC, Anda harus menyertakan informasi khusus driver tertentu dalam program Anda. Bagian ini menjelaskan, dalam bentuk tutorial, di mana dan bagaimana cara menambahkan informasi. Tutorial memandu Anda melalui langkah-langkah untuk membuat kode yang terhubung ke dan menanyakan database dari klien Anda harus menulis kode untuk melakukan tugas-tugas berikut Catatan Anda harus memberikan informasi khusus driver Oracle untuk tiga tugas pertama, yang memungkinkan program Anda menggunakan antarmuka pemrograman aplikasi (API) JDBC untuk mengakses database. Untuk tugas lainnya, Anda dapat menggunakan kode Java JDBC standar, seperti yang Anda lakukan untuk aplikasi Java apa punMengimpor PaketApa pun driver Oracle JDBC yang Anda gunakan, sertakan pernyataan ORACLE_HOME/lib00 yang ditampilkan di awal program Anda Tabel 2-1 Pernyataan Impor untuk Pengemudi JDBC Pernyataan imporMenyediakanORACLE_HOME/lib_01 Paket JDBC standar ORACLE_HOME/lib_02 Kelas ORACLE_HOME/lib_03 dan ORACLE_HOME/lib04. Anda dapat menghilangkan paket ini jika Anda tidak akan menggunakan kelas-kelas ini dalam aplikasi Anda ORACLE_HOME/lib_05 ORACLE_HOME/lib_06 ORACLE_HOME/lib_07 ekstensi Oracle ke JDBC. Ini opsional ORACLE_HOME/lib_08 Ekstensi tipe Oracle. Ini opsional Paket Oracle yang terdaftar sebagai opsional menyediakan akses ke fungsionalitas tambahan yang disediakan oleh driver Oracle JDBC, tetapi tidak diperlukan untuk contoh yang disajikan di bagian ini Catatan Lebih baik mengimpor hanya kelas yang dibutuhkan aplikasi Anda, daripada menggunakan tanda bintang wildcard (OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection();3). Panduan ini menggunakan tanda bintang (*) untuk kesederhanaan, tetapi ini bukan cara yang disarankan untuk mengimpor kelas dan antarmuka Membuka Koneksi ke DatabasePertama, Anda harus membuat instance ORACLE_HOME/lib08. Kemudian, buka koneksi ke database menggunakan metode ________41______11. Properti koneksi yang diambil berasal dari instance ORACLE_HOME/lib08. Jika Anda menyetel properti koneksi URL, maka semua properti lainnya, termasuk ORACLE_HOME/lib13, ORACLE_HOME/lib14, ORACLE_HOME/lib15, ORACLE_HOME/lib16, ORACLE_HOME/lib17, ORACLE_HOME/lib18, dan jenis driver akan diabaikan Menentukan URL Database, Nama Pengguna, dan Kata Sandi Kode berikut menetapkan URL, nama pengguna, dan kata sandi untuk sumber data OracleDataSource ods = new OracleDataSource(); ods.setURL(url); ods.setUser(user); ods.setPassword(password); Contoh berikut menghubungkan pengguna ORACLE_HOME/lib_19 dengan kata sandi ORACLE_HOME/lib20 ke database dengan layanan ORACLE_HOME/lib21 melalui port 1521 host ORACLE_HOME/lib22, menggunakan driver JDBC Thin OracleDataSource ods = new OracleDataSource(); String url = "jdbc:oracle:thin:@//myhost:1521/orcl", ods.setURL(url); ods.setUser("scott"); ods.setPassword("tiger"); Connection conn = ods.getConnection(); Catatan Nama pengguna dan kata sandi yang ditentukan dalam argumen menimpa nama pengguna dan kata sandi apa pun yang ditentukan dalam URLMenentukan URL Basis Data yang Mencakup Nama Pengguna dan Kata Sandi Contoh berikut menghubungkan pengguna ORACLE_HOME/lib_19 dengan kata sandi ORACLE_HOME/lib20 ke host basis data yang entri Substrat Jaringan Transparan (TNS)-nya adalah ORACLE_HOME/lib25, menggunakan driver JDBC Oracle Call Interface (OCI). Dalam hal ini, URL menyertakan nama pengguna dan kata sandi dan merupakan satu-satunya parameter masukan String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection(); Jika Anda ingin terhubung menggunakan driver Thin, maka Anda harus menentukan nomor port. Misalnya, jika Anda ingin terhubung ke database pada host ORACLE_HOME/lib22 yang memiliki pendengar TCP/IP pada port 1521 dan pengidentifikasi layanan adalah ORACLE_HOME/lib21, maka berikan kode berikut ORACLE_HOME/lib_0 Membuat Objek PernyataanSetelah Anda terhubung ke database dan, dalam prosesnya, membuat objek ORACLE_HOME/lib28, langkah selanjutnya adalah membuat objek ORACLE_HOME/lib29. Metode ORACLE_HOME/lib_30 dari objek JDBC ORACLE_HOME/lib28 mengembalikan objek dari tipe JDBC ORACLE_HOME/lib29. Untuk melanjutkan contoh dari bagian sebelumnya, di mana objek ORACLE_HOME/lib28 ORACLE_HOME/lib34 dibuat, berikut adalah contoh cara membuat objek ORACLE_HOME/lib29 ORACLE_HOME/lib_1 Menjalankan Kueri dan Mengambil Objek Kumpulan HasilUntuk menanyakan database, gunakan metode ORACLE_HOME/lib_36 dari objek ORACLE_HOME/lib29. Metode ini mengambil pernyataan SQL sebagai input dan mengembalikan objek JDBC ________41______38 Catatan
Untuk melanjutkan contoh, setelah Anda membuat objek ORACLE_HOME/lib_29 ORACLE_HOME/lib52, langkah selanjutnya adalah menjalankan kueri yang mengembalikan objek ORACLE_HOME/lib38 dengan isi kolom ORACLE_HOME/lib54 dari tabel karyawan bernama ORACLE_HOME/lib55 ORACLE_HOME/lib_2 Memproses Objek Kumpulan HasilSetelah Anda menjalankan kueri, gunakan metode ORACLE_HOME/lib56 dari objek ORACLE_HOME/lib38 untuk beralih melalui hasil. Metode ini menelusuri kumpulan hasil baris demi baris, mendeteksi akhir kumpulan hasil saat tercapai Untuk menarik data dari rangkaian hasil saat Anda mengulanginya, gunakan metode ORACLE_HOME/lib58 ORACLE_HOME/lib59 yang sesuai dari objek ORACLE_HOME/lib38 , di mana ORACLE_HOME/lib59 sesuai dengan tipe data Java Misalnya, kode berikut akan mengulang melalui objek ORACLE_HOME/lib38, ORACLE_HOME/lib63, dari bagian sebelumnya dan akan mengambil dan mencetak setiap nama karyawan ORACLE_HOME/lib_3 Metode ORACLE_HOME/lib_56 mengembalikan ORACLE_HOME/lib65 saat mencapai akhir kumpulan hasil. Nama karyawan diwujudkan sebagai nilai Java ORACLE_HOME/lib66 Menutup Set Hasil dan Objek PernyataanAnda harus secara eksplisit menutup objek ORACLE_HOME/lib_38 dan ________41______29 setelah Anda selesai menggunakannya. Ini berlaku untuk semua objek ORACLE_HOME/lib38 dan ORACLE_HOME/lib29 yang Anda buat saat menggunakan driver Oracle JDBC. Driver tidak memiliki metode finalizer. Rutinitas pembersihan dilakukan dengan metode ORACLE_HOME/lib71 dari kelas ORACLE_HOME/lib38 dan ORACLE_HOME/lib29. Jika Anda tidak menutup objek ORACLE_HOME/lib_38 dan ORACLE_HOME/lib29 secara eksplisit, kebocoran memori serius dapat terjadi. Anda juga bisa kehabisan kursor di database. Menutup set hasil dan pernyataan melepaskan kursor yang sesuai di database. Jika Anda hanya menutup kumpulan hasil, maka kursor tidak akan dilepaskan Misalnya, jika objek ORACLE_HOME/lib38 Anda adalah ORACLE_HOME/lib63 dan objek ORACLE_HOME/lib29 Anda adalah ORACLE_HOME/lib52, maka tutup kumpulan hasil dan pernyataan dengan baris kode berikut ORACLE_HOME/lib_4 Saat Anda menutup objek ORACLE_HOME/lib_29 yang dibuat oleh objek ORACLE_HOME/lib28 tertentu, koneksi itu sendiri tetap terbuka Catatan Biasanya, Anda harus memasukkan pernyataanORACLE_HOME/lib_71 dalam klausa ORACLE_HOME/lib83 Membuat Perubahan pada DatabaseOperasi DML Untuk melakukan operasi DML (Data Manipulation Language), seperti operasi INSERT atau UPDATE, Anda dapat membuat objek ORACLE_HOME/lib29 atau objek ORACLE_HOME/lib85. ORACLE_HOME/lib_85 objek memungkinkan Anda untuk menjalankan pernyataan dengan berbagai set parameter masukan. Metode ORACLE_HOME/lib_87 dari objek JDBC ORACLE_HOME/lib28 memungkinkan Anda menentukan pernyataan yang mengambil parameter pengikat variabel dan mengembalikan objek JDBC ORACLE_HOME/lib85 dengan definisi pernyataan Anda Gunakan metode ORACLE_HOME/lib90 ORACLE_HOME/lib59 pada objek ORACLE_HOME/lib85 untuk mengikat data ke pernyataan yang disiapkan untuk dikirim ke database Contoh berikut menunjukkan cara menggunakan pernyataan siap untuk menjalankan ORACLE_HOME/lib93 operasi yang menambahkan dua baris ke tabel ORACLE_HOME/lib55 ORACLE_HOME/lib_5 Operasi DDL Untuk melakukan operasi bahasa definisi data (DDL), Anda dapat membuat objek ORACLE_HOME/lib29 atau objek ORACLE_HOME/lib85. Contoh berikut menunjukkan cara membuat tabel di database menggunakan objek ORACLE_HOME/lib29 ORACLE_HOME/lib_6 Jika kode Anda melibatkan eksekusi ulang operasi DDL, maka sebelum mengeksekusi ulang pernyataan tersebut, Anda harus menyiapkannya lagi. Contoh berikut menunjukkan cara menyiapkan pernyataan DDL Anda sebelum dieksekusi ulang ORACLE_HOME/lib_7 Melakukan PerubahanSecara default, operasi bahasa manipulasi data (DML) dilakukan secara otomatis segera setelah dijalankan. Ini dikenal sebagai mode komitmen otomatis. Namun, Anda dapat menonaktifkan mode komit otomatis dengan panggilan metode berikut pada objek ORACLE_HOME/lib28 ORACLE_HOME/lib_8 Jika Anda menonaktifkan mode komit otomatis, maka Anda harus melakukan atau mengembalikan perubahan secara manual dengan panggilan metode yang sesuai pada objek ORACLE_HOME/lib28 ORACLE_HOME/lib_9 atau ORACLE_HOME\bin0 Operasi ORACLE_HOME\bin_00 atau ORACLE_HOME\bin01 memengaruhi semua pernyataan DML yang dijalankan sejak ORACLE_HOME\bin00 atau ORACLE_HOME\bin01 terakhir Catatan
Mengubah Perilaku KomitmenKetika sebuah transaksi memperbarui database, itu menghasilkan entri redo yang sesuai dengan pembaruan ini. Oracle Database menyangga redo ini di memori hingga penyelesaian transaksi. Saat Anda melakukan transaksi, proses Penulis Log (LGWR) menulis entri redo untuk komit ke disk, bersama dengan akumulasi entri redo dari semua perubahan dalam transaksi. Secara default, Oracle Database menulis redo ke disk sebelum panggilan kembali ke klien. Perilaku ini menimbulkan latensi dalam komit karena aplikasi harus menunggu entri redo tetap ada di disk Jika aplikasi Anda memerlukan throughput transaksi yang sangat tinggi dan Anda bersedia memperdagangkan daya tahan komit untuk latensi komit yang lebih rendah, maka Anda dapat mengubah perilaku operasi ORACLE_HOME\bin00 default, bergantung pada kebutuhan aplikasi Anda. Anda dapat mengubah perilaku operasi ORACLE_HOME\bin_00 dengan opsi berikut
Opsi ini memungkinkan Anda mengontrol dua aspek berbeda dari fase komit
Anda juga dapat menggabungkan opsi yang berbeda secara bersamaan. Misalnya, jika Anda ingin panggilan ORACLE_HOME\bin_00 kembali tanpa menunggu server memprosesnya dan juga penulis log memproses komit secara berkelompok, maka Anda dapat menggunakan opsi ORACLE_HOME\bin10 dan ORACLE_HOME\bin11 secara bersamaan. Sebagai contoh ORACLE_HOME\bin1 Catatan Anda tidak dapat menggunakan opsiORACLE_HOME\bin09 dan ORACLE_HOME\bin10 bersamaan karena memiliki arti yang berlawanan. Jika Anda melakukannya, maka driver JDBC akan memberikan pengecualian. Hal yang sama berlaku untuk opsi ORACLE_HOME\bin_12 dan ORACLE_HOME\bin11 Menutup KoneksiAnda harus menutup koneksi ke database setelah Anda melakukan semua operasi yang diperlukan dan tidak lagi memerlukan koneksi. Anda dapat menutup sambungan dengan menggunakan metode ORACLE_HOME/lib_71 dari objek ________41______28, sebagai berikut ORACLE_HOME\bin2 Catatan Biasanya, Anda harus memasukkan pernyataanORACLE_HOME/lib_71 dalam klausa ORACLE_HOME/lib83 Sampel. Menghubungkan, Menanyakan, dan Memproses HasilLangkah-langkah di bagian sebelumnya diilustrasikan dalam contoh berikut, yang menggunakan driver Oracle JDBC Thin untuk membuat sumber data, menghubungkan ke database, membuat objek ORACLE_HOME/lib29, menjalankan kueri, dan memproses kumpulan hasil Perhatikan bahwa kode untuk membuat objek ORACLE_HOME/lib_29, menjalankan kueri, mengembalikan dan memproses objek ORACLE_HOME/lib38, dan menutup pernyataan dan koneksi menggunakan API JDBC standar ORACLE_HOME\bin3 Jika Anda ingin mengadaptasi kode untuk driver OCI, ganti panggilan ke metode ORACLE_HOME\bin32 dengan yang berikut ini ORACLE_HOME\bin4 di mana, ORACLE_HOME\bin_33 adalah entri dalam file ORACLE_HOME\bin34 Panggilan Prosedur Tersimpan dalam Program JDBCBagian ini menjelaskan bagaimana driver Oracle JDBC mendukung jenis prosedur tersimpan berikut ini Prosedur Tersimpan PL/SQLDriver Oracle JDBC mendukung pemrosesan prosedur tersimpan PL/SQL dan blok anonim. Mereka mendukung sintaks blok PL/SQL dan sebagian besar sintaks melarikan diri JDBC. Panggilan PL/SQL berikut akan berfungsi dengan driver Oracle JDBC apa pun ORACLE_HOME\bin5 Sebagai contoh penggunaan sintaks Oracle, berikut adalah cuplikan kode PL/SQL yang membuat fungsi tersimpan. Fungsi PL/SQL mendapatkan urutan karakter dan menggabungkan sufiksnya ORACLE_HOME\bin6 Doa fungsi dalam program JDBC Anda akan terlihat seperti berikut ini ORACLE_HOME\bin7 Prosedur Tersimpan JavaAnda dapat menggunakan JDBC untuk memanggil prosedur tersimpan Java melalui mesin SQL dan PL/SQL. Sintaks untuk memanggil prosedur tersimpan Java sama dengan sintaks untuk memanggil prosedur tersimpan PL/SQL, dengan asumsi mereka telah dipublikasikan dengan benar. Artinya, Anda telah menulis spesifikasi panggilan untuk menerbitkannya ke kamus data Oracle. Aplikasi dapat memanggil prosedur tersimpan Java menggunakan Native Java Interface untuk pemanggilan langsung ORACLE_HOME\bin35 metode Java Memproses Pengecualian SQLUntuk menangani kondisi kesalahan, driver Oracle JDBC membuang pengecualian SQL, menghasilkan turunan dari kelas ORACLE_HOME\bin36 atau subkelasnya. Kesalahan dapat berasal dari driver JDBC atau dari database itu sendiri. Pesan yang dihasilkan menggambarkan kesalahan dan mengidentifikasi metode yang melontarkan kesalahan. Informasi run-time tambahan juga dapat ditambahkan JDBC 3. 0 mendefinisikan hanya satu pengecualian, ________41______47. Namun, ada banyak kategori kesalahan dan berguna untuk membedakannya. Oleh karena itu, di JDBC 4. 0, satu set subclass dari pengecualian ORACLE_HOME/lib47 diperkenalkan untuk mengidentifikasi berbagai kategori kesalahan. Untuk mengetahui lebih lanjut tentang fitur ini, lihat Penanganan pengecualian dasar dapat mencakup pengambilan pesan kesalahan, pengambilan kode kesalahan, pengambilan status SQL, dan pencetakan pelacakan tumpukan. Kelas ORACLE_HOME/lib_47 menyertakan fungsionalitas untuk mengambil semua informasi ini, jika tersedia Mengambil Informasi Kesalahan Anda dapat mengambil informasi kesalahan dasar dengan metode berikut dari kelas ORACLE_HOME/lib47
Contoh berikut mencetak keluaran dari pemanggilan metode ________47______41 ORACLE_HOME\bin8 Ini akan mencetak output, seperti berikut ini, untuk kesalahan yang berasal dari driver JDBC ORACLE_HOME\bin_9 Catatan Teks pesan kesalahan tersedia dalam bahasa alternatif dan kumpulan karakter yang didukung oleh OracleMencetak Stack Trace Kelas ORACLE_HOME/lib_47 menyediakan metode ORACLE_HOME\bin46 untuk mencetak jejak tumpukan. Metode ini mencetak jejak tumpukan dari objek yang dapat dibuang ke aliran kesalahan standar. Anda juga dapat menentukan objek ORACLE_HOME\bin_47 atau ORACLE_HOME\bin48 untuk output Fragmen kode berikut mengilustrasikan bagaimana Anda bisa menangkap pengecualian SQL dan mencetak pelacakan tumpukan CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT;0 Untuk mengilustrasikan bagaimana driver JDBC menangani kesalahan, asumsikan kode berikut menggunakan indeks kolom yang salah Bagaimana cara memeriksa versi driver JDBC Windows?Anda dapat menentukan versi driver JDBC yang Anda instal, dengan memanggil metode getDriverVersion dari kelas OracleDatabaseMetaData . Anda juga dapat menentukan versi driver JDBC dengan menjalankan perintah berikut. java-jar ojdbc5. stoples.
Di mana driver JDBC saya diinstal?File driver JDBC diinstal di C. \program files\microsoft SQL server .
Apakah saya memiliki driver JDBC?Satu cara untuk memeriksa versi driver JDBC adalah dengan membuka file jar ojdbc dan masuk ke dalam folder META-INF, lalu membuka folder "MANIFEST. Berkas MF" . Versinya bisa dilihat di samping "Spesifikasi-Versi".
Apakah JDK termasuk JDBC?Dukungan Tipe Data. Oracle JDBC mendukung penuh JDK 1. 5 dan JDK 1. 6 , yang mencakup JDBC 2 standar. 0 fungsionalitas melalui implementasi antarmuka dalam standar java. |