📰 WHAT'S NEW?

[07] ODBC and JDBC

ODBC and JDBC

ODBC
Open Database Connectivity (ODBC) adalah Application Programming interface (API) database yang khusus digunakan untuk mengakses database relasional, juga sebuah standar database yang metode aksesnya dikembangkan oleh kelompok SQL Access .ODBC terdapat dalam setiap komputer yang menggunakan sistem operasi windows, karena ODBC merupakan bagian dari Windows Open System Architecture (WOSA). Dalam ODBC disediakan berbagai Application Programming Interface (API) yang berguna untuk menyediaan dan memberikan stkitar bagi berbagai kegiatan pemrograman. Keuntungan utama menggunakan ODBC ini adalah fleksibilitas, fleksibel disini artinya pengubahan jenis database yang dipergunakan oleh sebuah aplikasi tidak akan mempengaruhi kode program aplikasi tersebut.ODBC terdapat dalam Control Panel Windows, yang ditunjukkan dengan icon Data Source (ODBC).




Tujuan dari ODBC adalah untuk memungkinkan user mengaksesdata yang ada dari setiap aplikasi , tentunya tidak terlepas dari yang sistem manajemen database (DBMS) untuk  penanganan data. ODBC memanage ini dengan inserting midle layer,yang  disebut database Driver, antara aplikasi dan DBMS. Tujuan dari lapisan ini adalah untuk menerjemahkan data aplikasi query ke command agar DBMS mengerti. 


Pada ODBC terdapat 2 hal penting yang berkaitan dengan koneksi database, yaitu :
1.       Database Driver
Database Driver adalah software/driver yang berfungsi untuk membuat koneksi ke database yang sesuai dengan database tersebut. Setiap database memiliki driver yang spesifik, sehingga dalam sebuah ODBC data berisi lebih dari 1 database driver.
2.       Data Source Name (DSN)
Data Source Name (DSN) adalah nama/alias dari database yang digunakan oleh program, yang koneksinya melalui ODBC.
Dalam ODBC terdapat beberapa jenis Data Source Name yang akan menentukan otoritas pemakai database, yaitu :
User DSN
User DSN bersifat private bagi user pembuatnya, artinya DSN jenis ini hanya dapat dipergunakan/tampak oleh user yang membuatnya (yaitu user yang login dengan username pembuat DSN tersebut), yang perlu menjadi catatan adalah bahwa sifat user DSN ini hanya berjalan pada Windows NT.
System DSN
System DSN bersifat public dalam sebuah komputer, artinya semua user yang menggunakan komputer dimana Sistem DSN di-install dapat menggunakannya walaupun bukan pembuatnya.
File DSN
File DSN adalah satu-satunya yang bisa di-share dan dapat dipergunakan komputer lain yang memiliki driver database yang sama, dengan demikian setting untuk koneksi database cukup dilakukan pada 1 komputer saja dan komputer yang lain cukup me-load-nya saja. File DSN ini umumnya dipergunakan untuk aplikasi multiuser pada suatu LAN.
ODBC memiliki beberapa komponen utama, yakni sebagai berikut:
1.       ODBC API : sekumpulan panggilan fungsi, kode-kode kesalahan dan sintaksis SQL yang mendefinisikan bagaimana data dalam sebuah DBMS diakses.
2.       Driver basis data ODBC : driver (yang berupa dynamic link library) yang mampu memproses panggilan fungsi ODBC untuk sebuah DBMS tertentu.

3.       ODBC Driver Manager : yang bertugas untuk memuat driver basis data ODBC yang dibutuhkan oleh aplikasi.
Pengguna sistem operasi Windows dapat mengonfigurasikan ODBC dengan menggunakan utilitas ODBC yang terdapat di dalam Control Panel. Utilitas ini mengizinkan mereka untuk mendefinisikan DSN (Data Source Name) untuk basis data yang hendak diakses dan juga driver yang digunakan untuk mengakses basis data tersebut. Untuk mengonfigurasikan ODBC dengan utilitas ini, mereka dapat mengasosiasikan sebuah DSN dengan sebuah driver ODBC, yang mengizinkan aplikasi untuk dapat berinterakse dengan sebuah basis data yang disimpan baik secara lokal di dalam mesin yang sama maupun di dalam server jaringan.

JDBC

JDBC merupakan kepanjangan dari Java DataBase Connection. Sesuai dengan namanya, JDBC ini merupakan sebuah API (Application Programming Interface) untuk berkoneksi dengan database, baik database MySql, Oracle, Ms.Access, maupun database yang lain. Sun menyediakan JDBC API ini untuk vendor database yang ingin databasenya dapat terintegrasi dengan Java. Sehingga setelah rilis JDBC API ini para vendor database membuat driver-driver mereka agar dapat klop dengan API ini.

Sebetulnya sebelum JDBC, dulu pernah ada ODBC, nah tapi kemudian Sun Microsystem membuat DataBase Connection sendiri yang ditulis dengan Java. Sekarang terkenal dengan JDBC. Untuk dapat berkoneksi dengan database, JDBC API membutuhkan yang namanya JDBC Driver. JDBC Driver ini dibuat oleh vendor database

Apa yang dilakukan JDBC?
Teknologi JDBC mampu untuk melakukan tiga hal berikut:
1. Membangun sebuah koneksi ke sumber data (data source).
2. Mengirim statement ke sumber data.
3. Memproses hasil dari statement tersebut

Tipe-tipe Driver JDBC
JDBC API terdiri atas dua interface utama, yang pertama yaitu JDBC API untuk penulis aplikasi, dan yang kedua yaitu lower-level JDBC driver API untuk penulis driver.

Teknologi driver JDBC dapat dibagi kedalam empat kategori:

1.  JDBC-ODBC Bridge plus ODBC Driver
Kombinasi ini menghasilkan akses JDBC melalui driver ODBC. Menjembatani antara aplikasi Java dengan Microsoft ODBC. Tipe driver ini paling cocok untuk jaringan korporat dimana instalasi klien bukan masalah besar, atau untuk aplikasi server yang ditulis dalam bahasa Java dalam arsitertur 3-tier.

2.  Native API party Java technology-enabled driver
Tipe driver ini mengkonversi JDBC call ke dalam client API untyk Oracle, Sybase, Informix, DB2, dan DBMS yang lain. Tipe ini memerlukan kode binary yang spesifik terhadap sistem operasi yang di-load kedalam masing-masing klien.

3. Pure Java Driver for Database Middleware (JDBC-Net)
Model driver ini menerjemahkan JDBC call kedalam protokol middleware vendor, yang kemudian diterjemahkan ke protokol DBMS oleh server middleware. Middleware menyediakan konektifitas ke berbagai jenis database yang berbeda.

4. Native-protocol Pure Java Driver
Model driver ini mengkonversi JDBC call langsung kedalam protokol network yang digunakan oleh DBMS, mengijinkan direct call dari mesin klien ke server DBMS dan memberikan solusi praktis untuk akses internet.

Langkah-langkah untuk berinteraksi dengan database server dengan menggunakan JDBC adalah sebagai berikut :
1.         Mengimpor package java.sql
2.         Mendefinisikan Url
3.      Memanggil Driver JDBC
4.      Membangun Koneksi
5.      Membuat Statement
6.      Melakukan Query
7.      Memproses Hasil
8.      Menutup Koneksi

1.       Mengimpor package java.sql
Pertama-tama yang harus dilakukan sebelum Anda membuat program JDBC adalah mengimpor package java.sql terbih dahulu, karena di dalam package java.sql tersebut terdapat kelas-kelas yang akan digunakan dalam proses-proses berintekasi dengan database server misalnya kelas DriverMaganer, Connection, dan ResultSet.
Adapun listing untuk mengimpor package java.sql adalah sebagai berikut :
Import java.sql.*;

2.       Mendefinisikan URL untuk koneksi database



3.       Memanggil Driver JDBC
Langkah berikutnya untuk melakukan koneksi dengan database server adalah dengan memanggil JDBC Driver dari database server yang kita gunakan. Driver adalah library yang digunakan untuk berkomunikasi dengan database server. Driver dari setiap database server berbeda-beda, sehingga Anda harus menyesuaikan Driver JDBC sesuai dengan database server yang Anda gunakan.
Berikut ini adalah listing program untuk memanggil driver JDBC.

Class.forName(namaDriver);
atau
Class.forName(namaDriver).newInstance();

Contoh listing memanggil driver untuk database server menggunakan MySQL adalah :

try {
Class.forName(“com.mysql.jdbc.Driver”);
} catch (ClassNotFoundException cnfe) {
System.out.println(“Pesan Error : “ + cnfe)
}

Berikut ini adalah daftar nama-nama driver dari beberapa database server yang sering digunakan.

Database Server
Nama Driver
JDBC-ODBC
sun.jdbc.odbc.JdbcOdbcDriver
MySQL
com.mysql.jdbc.Driver
PostgreSQL
org.postgresql.Driver
Microsoft SQLServer
com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle
oracle.jdbc.driver.OracleDriver
IBM DB2
COM.ibm.db2.jdbc.app.DB2Driver

4.       Membangun Koneksi
Setelah melakukan pemanggilan terhadap driver JDBC, langkah selanjutnya adalah membangun koneksi dengan menggunakan interface Connection. Object Connection yang dibuat untuk membangun koneksi dengan database server tidak dengan cara membuat object baru dari interface Connection melainkan dari class DriverManager dengan menggunakan methode getConnection().

Connection koneksi = DriverManager.getConnection(<argumen>)

Untuk menangani error yang mungkin terjadi pada proses melakukan koneksi dengan database maka ditambahkan try-catch. Exception yang akan dihasilkan pada proses ini adalah berupa SQLException. Adapun cara penulisan listingnya adalah sebagai berikut :


try {
... koneksi database
} catch (SQLException sqle){
... penanganan error koneksi
}

Berikut ini adalah daftar penulisan URL dari beberapa database server yang sering digunakan.

Database Server
Nama URL
Contoh penggunaan
JDBC-ODBC
jdbc:odbc:<NamaDatabase>
jdbc:odbc:Dbase
MySQL
jdbc:mysql://<nmHost>:<port>/<nmDB>
jdbc:mysql://localhost:3306/Dbase
PostgreSQL
jdbc:postgresql://<nmHost>:<port>/<nmDB>
jdbc:postgresql://localhost:5432/Dbase
Microsoft SQLServer
jdbc:microsoft:sqlserver://<nmHost>:<port>; DatabaseName=<namaDatabase>
jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=Dbase
Oracle
jdbc:oracle:thin:@<nmHost>:<port>:<nmDB>
jdbc:oracle:thin:@localhost:1521:Dbase
IBM DB2
jdbc:db2:<NamaDatabase>
jdbc:db2:Dbase

5.       Membuat Object Statement
JDBC API menyediakan interface yang berfungsi untuk melakukan proses pengiriman statement SQL yang terdapat pada package java.sql. Di dalam JDBC API disediakan tiga buah interface untuk fungsi tersebut yaitu :
n  Statement
Interface ini dibuat oleh methode Connection.createStatement(). Object Statement digunakan untuk pengiriman statement SQL tanpa parameter.

Statement stat = Connection.createStatement();

n  PreparedStatement
Interface ini dibuat oleh methode Connection.prepareStatement(). Object PreparedStatement digunakan untuk pengiriman statement SQL dengan atau tanpa parameter. Dengan object ini, kita dapat menampung satu atau lebih parameter sebagai argumen input (perameter IN). Interface ini memiliki performa lebih baik dibandingkan dengan interface Statement karena dapat menjalankan beberapa proses dalam sekali pengiriman perintah SQL.

PreparedStatement stat = Connection.prepareStatement();

n  CallableStatement
Interface ini dibuat oleh methode Connection.prepareCall(). Object CallableStatement digunakan untuk menjalankan store procedure SQL.

CallableStatement stat = Connection.prepareCall();

6.       Melakukan Eksekusi Perintah SQL
Setelah kita memiliki object statement, kita dapat menggunakannya untuk melakukan pengiriman perintah SQL dan mengeksekusinya. Methode eksekusi yang digunakan untuk perintah SQL terbagi menjadi dua bagian yaitu untuk perintah SELECT methode eksekusi yang digunakan adalah executeQery() dengan nilai kembaliannya adalah ResultSet, dan untuk perintah INSERT, UPDATE, DELETE methode eksekusi yang digunakan adalah executeUpdate().
Berikut ini adalah contoh melakukan eksekusi perintah SQL dan mengambil hasilnya (ResultSet) dengan menggunakan perintah SELECT.

String sql = “SELECT kode, nama, alamat, kelas FROM dataSiswa”;
      ResultSet set = stat.executeQuery(sql);
      while (set.next()) {
        String kode = set.getString("kode");
        String nama = set.getString("nama");
        String alamat = set.getString("alamat");
        String kelas = set.getString("kelas");
      }

7.       Memproses Hasil

8.       Menutup Koneksi
Penutupan terhadap koneksi database perlu dilakukan agar sumber daya yang digunakan oleh object Connection dapat digunakan lagi oleh proses atau program yang lain.
Sebelum kita menutup koneksi database, kita perlu melepas object Statement dengan kode sebagai berikut :

statement.close();
Untuk menutup koneksi dengan database server dapat kita lakukan dengan kode sebagai berikut :

connection.close();





0 komentar:

Posting Komentar