JDBC - Koneksi Database
Setelah Anda menginstal driver yang sesuai, sekarang saatnya untuk membuat koneksi database menggunakan JDBC.
Pemrograman yang terlibat untuk membuat koneksi JDBC cukup sederhana. Berikut empat langkah sederhana ini -
Import JDBC Packages: Menambahkan import pernyataan ke program Java Anda untuk mengimpor kelas yang diperlukan dalam kode Java Anda.
Register JDBC Driver: Langkah ini menyebabkan JVM memuat implementasi driver yang diinginkan ke dalam memori sehingga dapat memenuhi permintaan JDBC Anda.
Database URL Formulation: Ini untuk membuat alamat yang diformat dengan benar yang mengarah ke database yang ingin Anda sambungkan.
Create Connection Object:Terakhir, buat kode panggilan ke metode getConnection () objek DriverManager untuk membuat koneksi database yang sebenarnya.
Impor Paket JDBC
Itu Import Pernyataan memberi tahu compiler Java di mana menemukan class yang Anda rujuk dalam kode Anda dan ditempatkan di bagian paling awal kode sumber Anda.
Untuk menggunakan paket JDBC standar, yang memungkinkan Anda memilih, menyisipkan, memperbarui, dan menghapus data dalam tabel SQL, tambahkan impor berikut ke kode sumber Anda -
import java.sql.* ; // for standard JDBC programs
import java.math.* ; // for BigDecimal and BigInteger support
Daftarkan Driver JDBC
Anda harus mendaftarkan driver dalam program Anda sebelum menggunakannya. Mendaftarkan driver adalah proses di mana file kelas driver Oracle dimuat ke dalam memori, sehingga dapat digunakan sebagai implementasi antarmuka JDBC.
Anda perlu melakukan registrasi ini hanya sekali dalam program Anda. Anda dapat mendaftarkan driver dengan salah satu dari dua cara.
Pendekatan I - Class.forName ()
Pendekatan paling umum untuk mendaftarkan driver adalah dengan menggunakan Java Class.forName()metode, untuk secara dinamis memuat file kelas driver ke dalam memori, yang secara otomatis mendaftarkannya. Metode ini lebih disukai karena memungkinkan Anda membuat registrasi driver dapat dikonfigurasi dan portabel.
Contoh berikut menggunakan Class.forName () untuk mendaftarkan driver Oracle -
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
Kamu dapat memakai getInstance() metode untuk mengatasi JVM yang tidak patuh, tetapi kemudian Anda harus membuat kode untuk dua Pengecualian tambahan sebagai berikut -
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
catch(IllegalAccessException ex) {
System.out.println("Error: access problem while loading!");
System.exit(2);
catch(InstantiationException ex) {
System.out.println("Error: unable to instantiate driver!");
System.exit(3);
}
Pendekatan II - DriverManager.registerDriver ()
Pendekatan kedua yang dapat Anda gunakan untuk mendaftarkan driver, adalah menggunakan statis DriverManager.registerDriver() metode.
Anda harus menggunakan metode registerDriver () jika Anda menggunakan JVM yang tidak sesuai dengan JDK, seperti yang disediakan oleh Microsoft.
Contoh berikut menggunakan registerDriver () untuk mendaftarkan driver Oracle -
try {
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver( myDriver );
}
catch(ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}
Formulasi URL Database
Setelah Anda memuat driver, Anda dapat membuat koneksi menggunakan file DriverManager.getConnection()metode. Untuk referensi mudah, izinkan saya mencantumkan tiga metode DriverManager.getConnection () yang kelebihan beban -
getConnection (String url)
getConnection (String url, Properti prop)
getConnection (String url, String user, String password)
Di sini setiap formulir membutuhkan database URL. URL database adalah alamat yang mengarah ke database Anda.
Merumuskan URL database adalah tempat sebagian besar masalah yang terkait dengan pembuatan koneksi terjadi.
Tabel berikut mencantumkan nama driver JDBC dan URL database yang populer.
RDBMS | Nama driver JDBC | Format URL |
---|---|---|
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://hostname / databaseName |
PERAMAL | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname: nomor port: databaseName |
DB2 | COM.ibm.db2.jdbc.net.DB2Driver | jdbc:db2:hostname: port Number / databaseName |
Sybase | com.sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: port Number / databaseName |
Semua bagian yang disorot dalam format URL bersifat statis dan Anda hanya perlu mengubah bagian yang tersisa sesuai pengaturan database Anda.
Buat Objek Koneksi
Kami telah membuat daftar tiga bentuk DriverManager.getConnection() metode untuk membuat objek koneksi.
Menggunakan URL Database dengan nama pengguna dan kata sandi
Bentuk getConnection () yang paling umum digunakan mengharuskan Anda memasukkan URL database, nama pengguna , dan kata sandi :
Dengan asumsi Anda menggunakan Oracle thin driver, Anda akan menentukan nilai host: port: databaseName untuk bagian database dari URL.
Jika Anda memiliki host di alamat TCP / IP 192.0.0.1 dengan nama host amrood, dan pendengar Oracle Anda dikonfigurasi untuk mendengarkan pada port 1521, dan nama database Anda adalah EMP, maka URL database lengkapnya adalah -
jdbc:oracle:thin:@amrood:1521:EMP
Sekarang Anda harus memanggil metode getConnection () dengan nama pengguna dan kata sandi yang sesuai untuk mendapatkan Connection objek sebagai berikut -
String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
String USER = "username";
String PASS = "password"
Connection conn = DriverManager.getConnection(URL, USER, PASS);
Hanya Menggunakan URL Database
Bentuk kedua dari metode DriverManager.getConnection () hanya membutuhkan URL database -
DriverManager.getConnection(String url);
Namun, dalam kasus ini, URL database menyertakan nama pengguna dan kata sandi dan memiliki bentuk umum berikut -
jdbc:oracle:driver:username/password@database
Jadi, koneksi di atas dapat dibuat sebagai berikut -
String URL = "jdbc:oracle:thin:username/password@amrood:1521:EMP";
Connection conn = DriverManager.getConnection(URL);
Menggunakan URL Database dan Objek Properti
Bentuk ketiga dari metode DriverManager.getConnection () memerlukan URL database dan objek Properties -
DriverManager.getConnection(String url, Properties info);
Objek Properti menyimpan sekumpulan pasangan kata kunci-nilai. Ini digunakan untuk meneruskan properti driver ke driver selama panggilan ke metode getConnection ().
Untuk membuat koneksi yang sama yang dibuat oleh contoh sebelumnya, gunakan kode berikut -
import java.util.*;
String URL = "jdbc:oracle:thin:@amrood:1521:EMP";
Properties info = new Properties( );
info.put( "user", "username" );
info.put( "password", "password" );
Connection conn = DriverManager.getConnection(URL, info);
Menutup Koneksi JDBC
Di akhir program JDBC Anda, diperlukan secara eksplisit untuk menutup semua koneksi ke database untuk mengakhiri setiap sesi database. Namun, jika Anda lupa, pengumpul sampah Java akan menutup koneksi saat membersihkan objek usang.
Mengandalkan pengumpulan sampah, terutama dalam pemrograman database, adalah praktik pemrograman yang sangat buruk. Anda harus membiasakan untuk selalu menutup koneksi dengan metode close () yang terkait dengan objek koneksi.
Untuk memastikan bahwa koneksi ditutup, Anda dapat memberikan blok 'akhirnya' dalam kode Anda. Sebuah blok terakhir selalu dijalankan, terlepas dari pengecualian terjadi atau tidak.
Untuk menutup koneksi terbuka di atas, Anda harus memanggil metode close () sebagai berikut -
conn.close();
Menutup koneksi secara eksplisit akan menghemat resource DBMS, yang akan membuat administrator database Anda senang.
Untuk pemahaman yang lebih baik, kami menyarankan Anda untuk mempelajari tutorial JDBC - Kode Contoh kami .