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;
    
    3
    CREATE 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;
3
CREATE 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;
    
    3
    OracleDataSource 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;
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 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
58
ORACLE_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

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
90
ORACLE_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

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.