Cara memeriksa apakah driver jdbc diinstal di windows

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

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 JDBC

Bagian 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 JDBC

Untuk 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 diinstal

Jika 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 Diinstal

Menginstal produk Oracle Java membuat, antara lain, direktori berikut

  • CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; 3CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; 4

  • 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 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; 3CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; 4

  • CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; _9

    Direktori ini berisi file terkompresi, javac java 0 atau javac java 1. Saat Anda membuka kompresi file terkompresi ini, direktori javac java 2 dan file javac java 3 dibuat. Direktori javac java _2 berisi contoh program, termasuk contoh cara menggunakan sintaks escape JDBC dan sintaks Oracle SQL, blok PL/SQL, stream, tipe yang ditentukan pengguna, ekstensi tipe Oracle tambahan, dan ekstensi kinerja Oracle

  • javac java 5

    Direktori ini berisi file javac java 6, yang merupakan dokumentasi antarmuka pemrograman aplikasi (API) Oracle JDBC

  • javac java 7

    Direktori javac java _7 berisi kelas Java yang diperlukan berikut ini

    • javac java 9 dan 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()); } } 0

      Berisi kelas untuk globalisasi dan dukungan set karakter multibyte

    • 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()); } } 1, 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()); } } 2, 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()); } } 3, dan 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()); } } 4

      Berisi kelas driver JDBC untuk digunakan dengan JDK 1. 5 dan JDK 1. 6

      Catatan

      • Sejak Oracle Database 11g Rilis 1 (11. 1), dukungan untuk versi JDK lebih awal dari versi 1. 5 telah dihapus. Selain itu, file 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()); } } 5 dan 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()); } } 6 tidak lagi dikirimkan. Sebagai gantinya, Anda dapat menggunakan file 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()); } } _1 dan 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()); } } 3, yang disertakan dengan Oracle Database 11g

      • Jika Anda menggunakan JSE 6 dan yang lebih baru, maka tidak perlu memuat driver JDBC secara eksplisit. Ini berarti Java run-time memuat driver saat dibutuhkan dan Anda tidak perlu menyertakan 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()); } } 9 atau /* * 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 ""; } } } 0 dalam kode Anda. Tetapi jika Anda menggunakan J2SE 5. 0, maka Anda perlu memuat driver JDBC secara eksplisit

  • /* * 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 ""; } } } _1

    File ini berisi informasi terkini dan rilis khusus tentang driver, yang mungkin tidak disertakan dalam dokumentasi lain pada produk

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

  • /* * 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

    File-file ini berisi kelas untuk Java Transaction API (JTA) dan Java Naming and Directory Interface (JNDI). Ini diperlukan hanya jika Anda menggunakan fitur JTA untuk manajemen transaksi terdistribusi atau fitur JNDI untuk layanan penamaan

    Catatan

    File-file ini juga dapat diperoleh dari situs Web Sun Microsystems. Namun, Anda disarankan untuk menggunakan versi yang disediakan oleh Oracle, yang telah diuji dengan driver Oracle

  • /* * 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 ""; } } } _6

    File JAR ini berisi kelas untuk Layanan Notifikasi Oracle. File ini diperlukan jika Anda menggunakan Pemberitahuan Aplikasi Cepat (FAN) untuk memberi tahu proses lain tentang konfigurasi dan informasi tingkat layanan

Periksa Variabel Lingkungan

Bagian 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

  • Di Sun Solaris atau Linux, atur variabel lingkungan ________40______2 sebagai berikut

    ORACLE_HOME/lib

    Direktori ini berisi pustaka objek bersama OracleDataSource ods = new OracleDataSource(); ods.setURL(url); ods.setUser(user); ods.setPassword(password); _3

    Catatan

    Jika Anda menjalankan Java Virtual Machine (JVM) 32-bit terhadap klien atau database 64-bit, maka Anda juga harus menambahkan CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; 3OracleDataSource ods = new OracleDataSource(); ods.setURL(url); ods.setUser(user); ods.setPassword(password); 5 ke OracleDataSource ods = new OracleDataSource(); ods.setURL(url); ods.setUser(user); ods.setPassword(password); 6

  • Di Microsoft Windows, atur variabel lingkungan ________40______7 sebagai berikut

    ORACLE_HOME\bin

    Direktori ini berisi pustaka tautan dinamis OracleDataSource ods = new OracleDataSource(); ods.setURL(url); ods.setUser(user); ods.setPassword(password); _8

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 Dijalankan

Untuk memastikan lebih lanjut bahwa Java telah diatur dengan benar di sistem klien Anda, buka direktori javac java 2 di bawah direktori CREATE ROLE jdbcthin; CALL dbms_java.grant_permission('JDBCTHIN', 'java.net.SocketPermission', '*', 'connect'); GRANT jdbcthin TO SCOTT; 3OracleDataSource 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 JDBC

Anda 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

  • String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection(); 0

  • String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection(); 1

Uji JDBC dan Koneksi Database

Direktori 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 java 2, 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

  • Mengimpor kelas Java yang diperlukan, termasuk kelas JDBC

  • Membuat instance String url = "jdbc:oracle:oci:scott/tiger@myTNSEntry"); ods.setURL(url); Connection conn = ods.getConnection(); 8

  • Menghubungkan ke database

  • Menjalankan kueri sederhana

  • Mencetak hasil kueri ke layar Anda

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 JDBC

Setelah 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 pun

Mengimpor Paket

Apa pun driver Oracle JDBC yang Anda gunakan, sertakan pernyataan ORACLE_HOME/lib 00 yang ditampilkan di awal program Anda

Tabel 2-1 Pernyataan Impor untuk Pengemudi JDBC

Pernyataan imporMenyediakan

ORACLE_HOME/lib _01

Paket JDBC standar

ORACLE_HOME/lib _02

Kelas ORACLE_HOME/lib _03 dan ORACLE_HOME/lib 04. 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 Database

Pertama, Anda harus membuat instance ORACLE_HOME/lib 08. Kemudian, buka koneksi ke database menggunakan metode ________41______11. Properti koneksi yang diambil berasal dari instance ORACLE_HOME/lib 08. Jika Anda menyetel properti koneksi URL, maka semua properti lainnya, termasuk ORACLE_HOME/lib 13, ORACLE_HOME/lib 14, ORACLE_HOME/lib 15, ORACLE_HOME/lib 16, ORACLE_HOME/lib 17, ORACLE_HOME/lib 18, 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/lib 20 ke database dengan layanan ORACLE_HOME/lib 21 melalui port 1521 host ORACLE_HOME/lib 22, 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 URL

Menentukan URL Basis Data yang Mencakup Nama Pengguna dan Kata Sandi

Contoh berikut menghubungkan pengguna ORACLE_HOME/lib _19 dengan kata sandi ORACLE_HOME/lib 20 ke host basis data yang entri Substrat Jaringan Transparan (TNS)-nya adalah ORACLE_HOME/lib 25, 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/lib 22 yang memiliki pendengar TCP/IP pada port 1521 dan pengidentifikasi layanan adalah ORACLE_HOME/lib 21, maka berikan kode berikut

ORACLE_HOME/lib _0

Membuat Objek Pernyataan

Setelah Anda terhubung ke database dan, dalam prosesnya, membuat objek ORACLE_HOME/lib 28, langkah selanjutnya adalah membuat objek ORACLE_HOME/lib 29. Metode ORACLE_HOME/lib _30 dari objek JDBC ORACLE_HOME/lib 28 mengembalikan objek dari tipe JDBC ORACLE_HOME/lib 29. Untuk melanjutkan contoh dari bagian sebelumnya, di mana objek ORACLE_HOME/lib 28 ORACLE_HOME/lib 34 dibuat, berikut adalah contoh cara membuat objek ORACLE_HOME/lib 29

ORACLE_HOME/lib _1

Menjalankan Kueri dan Mengambil Objek Kumpulan Hasil

Untuk menanyakan database, gunakan metode ORACLE_HOME/lib _36 dari objek ORACLE_HOME/lib 29. Metode ini mengambil pernyataan SQL sebagai input dan mengembalikan objek JDBC ________41______38

Catatan

  • Metode yang digunakan untuk mengeksekusi objek ORACLE_HOME/lib 29 bergantung pada jenis pernyataan SQL yang dieksekusi. Jika objek ORACLE_HOME/lib 29 mewakili kueri SQL yang mengembalikan objek ________41______38, metode ORACLE_HOME/lib 36 harus digunakan. Jika SQL dikenal sebagai pernyataan DDL atau pernyataan DML yang mengembalikan jumlah pembaruan, metode ORACLE_HOME/lib 43 harus digunakan. Jika jenis pernyataan SQL tidak diketahui, metode ORACLE_HOME/lib 44 harus digunakan

  • Dalam kasus driver JDBC standar, jika string SQL yang dieksekusi tidak mengembalikan objek ORACLE_HOME/lib 38, maka metode ORACLE_HOME/lib 36 melempar pengecualian ORACLE_HOME/lib 47. Dalam kasus driver Oracle JDBC, metode ORACLE_HOME/lib 36 tidak memunculkan pengecualian ORACLE_HOME/lib 47 bahkan jika string SQL yang dieksekusi tidak mengembalikan objek ORACLE_HOME/lib 38

Untuk melanjutkan contoh, setelah Anda membuat objek ORACLE_HOME/lib _29 ORACLE_HOME/lib 52, langkah selanjutnya adalah menjalankan kueri yang mengembalikan objek ORACLE_HOME/lib 38 dengan isi kolom ORACLE_HOME/lib 54 dari tabel karyawan bernama ORACLE_HOME/lib 55

ORACLE_HOME/lib _2

Memproses Objek Kumpulan Hasil

Setelah Anda menjalankan kueri, gunakan metode ORACLE_HOME/lib 56 dari objek ORACLE_HOME/lib 38 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/lib 58ORACLE_HOME/lib 59 yang sesuai dari objek ORACLE_HOME/lib 38 , di mana ORACLE_HOME/lib 59 sesuai dengan tipe data Java

Misalnya, kode berikut akan mengulang melalui objek ORACLE_HOME/lib 38, ORACLE_HOME/lib 63, dari bagian sebelumnya dan akan mengambil dan mencetak setiap nama karyawan

ORACLE_HOME/lib _3

Metode ORACLE_HOME/lib _56 mengembalikan ORACLE_HOME/lib 65 saat mencapai akhir kumpulan hasil. Nama karyawan diwujudkan sebagai nilai Java ORACLE_HOME/lib 66

Menutup Set Hasil dan Objek Pernyataan

Anda harus secara eksplisit menutup objek ORACLE_HOME/lib _38 dan ________41______29 setelah Anda selesai menggunakannya. Ini berlaku untuk semua objek ORACLE_HOME/lib 38 dan ORACLE_HOME/lib 29 yang Anda buat saat menggunakan driver Oracle JDBC. Driver tidak memiliki metode finalizer. Rutinitas pembersihan dilakukan dengan metode ORACLE_HOME/lib 71 dari kelas ORACLE_HOME/lib 38 dan ORACLE_HOME/lib 29. Jika Anda tidak menutup objek ORACLE_HOME/lib _38 dan ORACLE_HOME/lib 29 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/lib 38 Anda adalah ORACLE_HOME/lib 63 dan objek ORACLE_HOME/lib 29 Anda adalah ORACLE_HOME/lib 52, 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/lib 28 tertentu, koneksi itu sendiri tetap terbuka

Catatan

Biasanya, Anda harus memasukkan pernyataan ORACLE_HOME/lib _71 dalam klausa ORACLE_HOME/lib 83

Membuat Perubahan pada Database

Operasi DML

Untuk melakukan operasi DML (Data Manipulation Language), seperti operasi INSERT atau UPDATE, Anda dapat membuat objek ORACLE_HOME/lib 29 atau objek ORACLE_HOME/lib 85. 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/lib 28 memungkinkan Anda menentukan pernyataan yang mengambil parameter pengikat variabel dan mengembalikan objek JDBC ORACLE_HOME/lib 85 dengan definisi pernyataan Anda

Gunakan metode ORACLE_HOME/lib 90ORACLE_HOME/lib 59 pada objek ORACLE_HOME/lib 85 untuk mengikat data ke pernyataan yang disiapkan untuk dikirim ke database

Contoh berikut menunjukkan cara menggunakan pernyataan siap untuk menjalankan ORACLE_HOME/lib 93 operasi yang menambahkan dua baris ke tabel ORACLE_HOME/lib 55

ORACLE_HOME/lib _5

Operasi DDL

Untuk melakukan operasi bahasa definisi data (DDL), Anda dapat membuat objek ORACLE_HOME/lib 29 atau objek ORACLE_HOME/lib 85. Contoh berikut menunjukkan cara membuat tabel di database menggunakan objek ORACLE_HOME/lib 29

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 Perubahan

Secara 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/lib 28

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/lib 28

ORACLE_HOME/lib _9

atau

ORACLE_HOME\bin 0

Operasi ORACLE_HOME\bin _00 atau ORACLE_HOME\bin 01 memengaruhi semua pernyataan DML yang dijalankan sejak ORACLE_HOME\bin 00 atau ORACLE_HOME\bin 01 terakhir

Catatan

  • Jika mode komit otomatis dinonaktifkan dan Anda menutup koneksi tanpa secara eksplisit melakukan atau mengembalikan perubahan terakhir Anda, maka operasi implisit ORACLE_HOME\bin 00 dijalankan

  • Setiap operasi bahasa definisi data (DDL) selalu menyebabkan ORACLE_HOME\bin 00 implisit. Jika mode komit otomatis dinonaktifkan, maka ORACLE_HOME\bin 00 implisit ini akan melakukan operasi DML yang tertunda yang belum dilakukan atau dibatalkan secara eksplisit

Mengubah Perilaku Komitmen

Ketika 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\bin 00 default, bergantung pada kebutuhan aplikasi Anda. Anda dapat mengubah perilaku operasi ORACLE_HOME\bin _00 dengan opsi berikut

  • ORACLE_HOME\bin _09

  • ORACLE_HOME\bin 10

  • ORACLE_HOME\bin _11

  • ORACLE_HOME\bin _12

Opsi ini memungkinkan Anda mengontrol dua aspek berbeda dari fase komit

  • Apakah panggilan ORACLE_HOME\bin 00 harus menunggu server memprosesnya atau tidak. Ini dicapai dengan menggunakan opsi ORACLE_HOME\bin 09 atau ORACLE_HOME\bin 10

  • Apakah Penulis Log harus mengelompokkan panggilan atau tidak. Ini dicapai dengan menggunakan opsi ORACLE_HOME\bin 12 atau ORACLE_HOME\bin 11

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\bin 10 dan ORACLE_HOME\bin 11 secara bersamaan. Sebagai contoh

ORACLE_HOME\bin 1

Catatan

Anda tidak dapat menggunakan opsi ORACLE_HOME\bin 09 dan ORACLE_HOME\bin 10 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\bin 11

Menutup Koneksi

Anda 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\bin 2

Catatan

Biasanya, Anda harus memasukkan pernyataan ORACLE_HOME/lib _71 dalam klausa ORACLE_HOME/lib 83

Sampel. Menghubungkan, Menanyakan, dan Memproses Hasil

Langkah-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/lib 29, menjalankan kueri, dan memproses kumpulan hasil

Perhatikan bahwa kode untuk membuat objek ORACLE_HOME/lib _29, menjalankan kueri, mengembalikan dan memproses objek ORACLE_HOME/lib 38, dan menutup pernyataan dan koneksi menggunakan API JDBC standar

ORACLE_HOME\bin 3

Jika Anda ingin mengadaptasi kode untuk driver OCI, ganti panggilan ke metode ORACLE_HOME\bin 32 dengan yang berikut ini

ORACLE_HOME\bin 4

di mana, ORACLE_HOME\bin _33 adalah entri dalam file ORACLE_HOME\bin 34

Panggilan Prosedur Tersimpan dalam Program JDBC

Bagian ini menjelaskan bagaimana driver Oracle JDBC mendukung jenis prosedur tersimpan berikut ini

Prosedur Tersimpan PL/SQL

Driver 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\bin 5

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\bin 6

Doa fungsi dalam program JDBC Anda akan terlihat seperti berikut ini

ORACLE_HOME\bin 7

Prosedur Tersimpan Java

Anda 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\bin 35 metode Java

Memproses Pengecualian SQL

Untuk menangani kondisi kesalahan, driver Oracle JDBC membuang pengecualian SQL, menghasilkan turunan dari kelas ORACLE_HOME\bin 36 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/lib 47 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/lib 47

  • ORACLE_HOME\bin _41

  • ORACLE_HOME\bin _42

  • ORACLE_HOME\bin _43

Contoh berikut mencetak keluaran dari pemanggilan metode ________47______41

ORACLE_HOME\bin 8

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 Oracle

Mencetak Stack Trace

Kelas ORACLE_HOME/lib _47 menyediakan metode ORACLE_HOME\bin 46 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\bin 48 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.

Postingan terbaru

LIHAT SEMUA