Database Koneksi JDBC
Pemrograman yang melibatkan pembentukan koneksi JDBC cukup sederhana. Berikut adalah empat langkah sederhana:
Mengimpor paket JDBC:
Pernyataan Impor memberi tahu kompiler Java di mana menemukan referensi dalam kode dan menempatkan kelas di awal kode sumber Anda.
Menggunakan paket JDBC standar, memungkinkan pemilihan, penyisipan, memperbarui dan menghapus data dari tabel SQL, menambahkan impor berikut ke kode sumber Anda:
impor java.sql.*; // untuk program JDBC standar Import Java.math.*; // untuk dukungan BigDecimal dan Biginteger
Daftarkan driver JDBC:
Sebelum menggunakannya, Anda harus mendaftarkan driver Anda di program. Driver terdaftar adalah proses implementasi di mana file kelas driver Oracle dimuat ke dalam memori sehingga dapat digunakan sebagai antarmuka JDBC.
Anda perlu melakukan pendaftaran ini hanya sekali dalam program Anda. Pengemudi dapat didaftarkan dalam salah satu dari dua cara.
Metode (i) - class.forname ():
Metode yang paling umum dalam mendaftarkan driver adalah menggunakan metode Java's Class.forname () untuk secara dinamis memuat file kelas driver ke dalam memori, dan secara otomatis akan mendaftarkannya. Pendekatan ini diinginkan karena memungkinkan driver untuk mendaftarkan konfigurasi untuk portabilitas yang mudah.
Contoh berikut menggunakan class.forname () untuk mendaftarkan driver oracle:
coba {class.forname ("oracle.jdbc.driver.oracledriver");} catch (classNotFoundException ex) {System.out.println ("Kesalahan: Tidak dapat memuat kelas driver!"); System.exit (1);}Anda dapat menggunakan metode getInstance () untuk menyelesaikan JVM yang tidak kompatibel, tetapi dua pengecualian tambahan ditulis sebagai berikut:
coba {class.forname ("oracle.jdbc.driver.oracledRiver"). newInstance ();} catch (classNotFoundException ex) {System.out.println ("Kesalahan: Tidak dapat memuat kelas driver!"); System.exit (1); Catch (IllegalAccessException EX) {System.out.println ("Kesalahan: Masalah Akses saat memuat!"); System.exit (2); Catch (InstantiationException EX) {System.out.println ("Kesalahan: Tidak dapat membuat driver instantiate!"); System.exit (3);} Metode (II) - DriverManager.RegisterDriver ():
Cara kedua untuk menggunakannya untuk mendaftarkan driver adalah dengan menggunakan metode StaticDriverManager.RegisterDriver ().
Seharusnya, jika Anda menggunakan JVM JDK yang tidak kompatibel, misalnya, Microsoft menyediakan metode menggunakan registerdriver ().
Contoh berikut menggunakan registerdriver () untuk mendaftarkan driver oracle:
coba {driver mydriver = oracle.jdbc.driver.oracledRiver baru (); DriverManager.RegisterDriver (myDriver);} catch (ClassNotFoundException ex) {System.out.println ("Kesalahan: Tidak dapat memuat kelas driver!"); System.exit (1);} Formulasi URL Database:
Saat memuat driver, Anda dapat membuat koneksi dalam program menggunakan metode driverManager.getConnection (). Untuk referensi yang mudah, mari kita daftar tiga metode driverManager.getConnection () yang kelebihan beban:):
Di sini, setiap formulir membutuhkan URL basis data. URL dari database menunjuk ke alamat database.
Mengembangkan URL basis data paling sering digunakan untuk membuat koneksi.
Tabel berikut mencantumkan nama driver JDBC yang populer dan URL database.
RDBMSJDBC Format nama driver URL
Mysql com.mysql.jdbc.driver jdbc: mysql: // hostname/databasenameoracle oracle.jdbc.driver.oracledriver jdbc: oracle: @hostname: port: databaseNeamedB2 com.ibm.dbc.jdbc.noN. Number/DataBasEnamesyBase com.sybase.jdbc.sybdriver JDBC: Sybase: TDS: HostName: Port Number/DatabaseName
Semua bagian yang disorot dalam format URL statis, dan hanya bagian yang tersisa yang perlu diubah sesuai dengan pengaturan basis data.
Buat Objek Koneksi: Gunakan nama pengguna dan kata sandi URL database:
Tiga bentuk metode driverManager.getConnection () berikut ini digunakan untuk membuat objek koneksi. Bentuk GetConnection () yang paling umum memerlukan melewati URL database, nama pengguna, dan kata sandi:
Nilai nama basis data untuk database URL: dengan asumsi bahwa Anda menggunakan driver tipis Oracle, Anda perlu menentukan host: port.
Misalkan ada alamat TCP/IP host 192.0.0.1 dan nama host dan pendengar Oracle dikonfigurasi pada port 1521, nama database adalah EMP, dan kemudian URL database lengkap adalah:
JDBC: Oracle: Tipis: @amrood: 1521: emp
Sekarang, metode pengguna dan kata sandi yang sesuai dan getConnection () harus dipanggil untuk mendapatkan objek koneksi seperti yang ditunjukkan di bawah ini:
String url = "jdbc: oracle: tipis: @amrood: 1521: emp"; string user = "username"; string pass = "kata sandi" koneksi conn = driverManager.getConnection (url, user, lulus);
Gunakan hanya satu URL database:
Bentuk kedua dari metode driverManager.getConnection () hanya memerlukan URL database:
DriverManager.getConnection (string url);
Namun, dalam hal ini, URL database, termasuk nama pengguna dan kata sandi, memiliki bentuk umum berikut:
JDBC: Oracle: Driver: Nama pengguna/kata sandi@database
Jadi koneksi di atas dapat dibuat sebagai berikut:
String url = "jdbc: oracle: tipis: nama pengguna/kata sandi@amrood: 1521: emp"; koneksi conn = driverManager.getConnection (url);
Gunakan URL Database dan Objek Properties:
Bentuk ketiga dari metode driverManager.getConnection () memerlukan URL basis data dan objek Properties:
DriverManager.getConnection (string url, info properti);
Objek Properties, menyimpan satu set pasangan nilai kata kunci. Ini digunakan untuk memanggil metode getConnection () ketika atribut driver diteruskan ke driver.
Untuk membuat koneksi yang sama dibuat melalui contoh sebelumnya, gunakan kode berikut:
Impor java.util.*; string url = "jdbc: oracle: tipis: @amrood: 1521: emp"; properti Info = properti baru (); info.put ("user", "username"); info.put ("kata sandi", "kata sandi"); koneksi conn = driverManager.getConnection (url, info); Tutup Koneksi JDBC:
Di akhir program JDBC, secara eksplisit mensyaratkan bahwa semua koneksi ke database ditutup untuk mengakhiri setiap sesi database. Namun, jika Anda lupa, kolektor sampah Java menutup koneksi dan membersihkan benda basi.
Mengandalkan pengumpulan sampah, terutama dalam pemrograman basis data, adalah kebiasaan pemrograman yang sangat buruk. Itu harus selalu terbiasa menutup metode tutup () yang terkait dengan objek koneksi.
Untuk memastikan bahwa koneksi ditutup, itu dapat dieksekusi di blok akhirnya dalam kode. Akhirnya blok akan dieksekusi, apakah terjadi atau tidak.
Untuk menutup koneksi yang dibuka di atas, metode tutup () harus dipanggil sebagai berikut:
conn.close ();
Secara eksplisit menutup koneksi ke DBMS untuk menghemat sumber daya.
Buat aplikasi JDBC:
Ada enam langkah yang terlibat dalam membangun aplikasi JDBC:
Kode contoh:
Contoh ini dapat digunakan sebagai templat ketika Anda perlu membangun aplikasi JDBC.
Kode sampel ini ditulis berdasarkan lingkungan dan instalasi basis data di bab sebelumnya.
Salin contoh berikut firstexample.java, kompilasi dan jalankan sebagai berikut:
// Langkah 1. Impor Paket yang Diperlukan Java.sql.*; Kelas publik FirstExample {// nama driver jdbc dan URL database statis string akhir jdbc_driver = "com.mysql.jdbc.driver"; string final statis db_url = "jdbc: mysql: // localhost/emp"; // kredensial basis data static final string user = "username"; Static Final String Pass = "Kata Sandi"; public static void main (string [] args) {connection conn = null; Pernyataan stmt = null; Coba {// Langkah 2: Daftarkan JDBC Driver Class.forname ("com.mysql.jdbc.driver"); // Langkah 3: Buka koneksi System.out.println ("Menghubungkan ke Database ..."); conn = driverManager.getConnection (db_url, user, pass); // Langkah 4: Jalankan kueri System.out.println ("Membuat Pernyataan ..."); stmt = conn.createStatement (); String sql; SQL = "Pilih ID, Pertama, Terakhir, Usia dari Karyawan"; Hasil rs = stmt.executeQuery (sql); // Langkah 5: Ekstrak data dari set hasil while (rs.next ()) {// ambil dengan nama kolom int id = rs.getint ("id"); int usia = rs.getint ("usia"); String first = rs.getString ("first"); String last = rs.getString ("last"); // tampilan nilai system.out.print ("id:" + id); System.out.print (", usia:" + usia); System.out.print (", pertama:" + pertama); System.out.println (", terakhir:" + terakhir); } // Langkah 6: Lingkungan Pembersihan Rs.Close (); stmt.close (); conn.close (); } catch (sqlexception se) {// menangani kesalahan untuk jdbc se.printstacktrace (); } catch (Exception e) {// menangani kesalahan untuk class.forname e.printstacktrace (); } akhirnya {// akhirnya blok yang digunakan untuk menutup sumber daya coba {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // tidak ada yang bisa kita coba {if (conn! = null) conn.close (); } catch (sqlexception se) {se.printstacktrace (); } // end akhirnya coba} // end try system.out.println ("Selamat tinggal!"); } // end Main} // Akhiri FirstExampleSekarang mari kita menyusun contoh di atas sebagai berikut:
C:> Javac FirstExample.java
Saat menjalankan FirstExample, itu menghasilkan hasil berikut:
C:> Java FirstExample
Menghubungkan ke Database ... Membuat Pernyataan ... ID: 100, Umur: 18, Pertama: Zara, Terakhir: Aliid: 101, Umur: 25, Pertama: Mahnaz, Terakhir: Fatmaid: 102, Umur: 30, Pertama: Zaid, Terakhir: Khanid: 103, Umur: 28, pertama: sumit, terakhir: Mital