Database ODBC dan JDBC

1. ODBC (Open Database Connectivity)

konektor terkenal dari MySQL yang dijalankan di sistem operasi Windows. Dengan adanya ODBC, MySQL dapat berinteraksi aplikasi-aplikasi di Windows

sebuah standar terbuka untuk konektivitas antar mesin basis data. standar ini menyediakan API yang dapat digunakan untuk menjalankan dan mengoneksikan sebuah aplikasi dengan sebuah sistem manajemen basis data (SMBD)

Tujuan ODBC: Supaya ODBC terbebas dari penggunaan bahasa pemrograman tertentu, sistem manajemen basis data tertentu, dan sistem operasi tertentu.

– Komponen Utama ODBC

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
bertugas untuk memuat driver basis data ODBC yang dibutuhkan oleh aplikasi.

Jenis Data Source Name (DSN)

berguna untuk menentukan otoritas pemakai database.

– User DSN

    – Bersifat private bagi user pembuatnya,

   – DSN jenis ini hanya dapat dipergunakan/tampak oleh user yang membuatnya (yaitu
user yang login dengan username pembuat DSN tersebut)

   – hanya berjalan pada Windows NT.

– System DSN

     –  Bersifat public dalam sebuah komputer

  – Semua user yang menggunakan komputer dimana Sistem DSN di-install dapat menggunakannya walaupun bukan pembuatnya.

ODBC Arsitektur

ada empat komponen dasar:

1. Aplikasi

    – Melakukan pengolahan dan panggilan fungsi ODBC untuk mengirimkan pernyataan SQL dan mengambil hasil

    – Aplikasi yang menggunakan interface ODBC, melakukan kegiatan sebagai berikut:

  1. Permintaan sambungan, atau sesi, dengan sumber data.
  2. Mengirimkan permintaan SQL ke sumber data.
  3. Permintaan hasil.
  4. Proses kesalahan.
  5. Permintaan melakukan atau rollback operasi untuk kontrol transaksi.
  6. Mengakhiri koneksi ke sumber data.

2. Drive Manager

    -Driver beban atas nama aplikasi

    -untuk memuat driver

    -Driver Manager juga melakukan hal berikut:

  1. Memetakan nama sumber data untuk driver khusus dynamic-link library (DLL).
  2. Proses beberapa panggilan inisialisasi ODBC.
  3. Memberikan titik masuk ke fungsi ODBC untuk setiap driver.
  4. Memberikan validasi parameter dan validasi urutan untuk panggilan ODBC.

3. Driver

    -mengajukan permintaan SQL ke sumber data tertentu

    -hasil kembali ke aplikasi

    -Sebuah driver melakukan tugas-tugas berikut dalam menanggapi ODBC panggilan fungsi dari aplikasi:

  1. Membentuk koneksi ke sumber data.
  2. Menyerahkan permintaan untuk sumber data.
  3. Pengembalian hasil ke aplikasi.
  4. Menyatakan dan memanipulasi kursor jika perlu.

4. Data Source

    – Terdiri dari data pengguna yang ingin mengakses dan sistem yang terkait operasi,
DBMS, dan platform jaringan (jika ada) yang digunakan untuk mengakses DBMS

    – contoh spesifik dari kombinasi produk DBMS dan sistem operasi jarak jauh dan jaringan
yang diperlukan untuk mengaksesnya.

Tampilan odbc

tampilan odbc'

2. JDBC (Java Data Base Connectivity)

merupakan API atau interface database yang dibangun untuk platform java. didalamnya terdapat kumpulan kelas-kelas dan interface yang ditulis dengan bahasa JavaJDBC.

program Java dapat mengakses sistem database managemen berdasarkan spesifikasi standar dari javaSoft APi. JDBC juga menyediakan methods untuk melakukan query dan modifikasi data RDBMS seperti Oracle, SQL server, MySQL, dll menggunakan driver manager

JDBC mirip dengan ODBC (Open Database Connectivity), hanya saja JDBC spesifik digunakan untuk program Java.

Kegunaan JDBC

1. Membantu programmer untuk koneksi dengan data source
2. Membantu mengirimkan query dan update statements ke database
3. Menerima serta memroses hasil yang didapatkan dari database sesuai dengan query yang diberikan.
4. Dapat digunakan untuk membangun koneksi ke data source, mengirim statement ke data source, memproses hasil statement tersebut.

Berikut adalah Skema jdbc

SKEMA JDBC

Komponen jdbc

1. JDBC-API

Melalui komponen ini user dapat melakukan proses query dan perubahan data dalam database

2. JDBC Driver Manager

Merupakan komponen kelas utama yang mendefinisikan object yang mengkoneksikan aplikasi Java ke JDBC driver. Berfungsi untuk mengatur beberapa tipe JDBC database driver yang berbeda.

3. JDBC Test Suite

Memastikan JDBC driver dapat menjalankan program user dan sangat berguna dalam melakukan testing sebuah aplikasi yang menggunakan teknologi JDBC

4. JDBC-ODBC Bridge

Memiliki fungsi utama untuk translasi dari JDBC method calls ke ODBC function calls. Juga mengimplementasikan JDBC untuk semua driver yang didukung oleh ODBC

Tipe-tipe jdbc :

1. JDBC ODBC Bridge

  • Fungsi : translasi query dari JDBC ke ODBC query
  • Keunggulan : semua database yang didukung oleh ODBC dapat diakses
  • Kelemahan : performance overhead, ODBC driver harus diinstall di semua client, dan dibutuhkan client side software.

2. Java to Native API

  • Fungsi : konversi pemanggilan JDBC ke client API untuk database
  • Keunggulan : performa lebih baik dari pada tipe 1
  • Kelemahan : Vendor client library harus diinstall di client, tidak dapat digunakan di internet karena membutuhkan client side software, dan tidak semua database memberikan client side library.

berikut adalah gambar cara menambahkan library untuk koneksi ke database.
tambahlibrary1tambahlibrary

Langkah Langkah Koneksi database dalam coding java

  • Panggil class java untuk koneksi database
  • Mendefinisikan URL untuk koneksi database
  • Memanggil driver JDBC
  • Melakukan koneksi database
  • Membuat objek statement
  • Melakukan query atau update
  • Memproses hasil
  • Menutup koneksi

Langkah-langkah untuk melakukan koneksi Java dan MySQL:
1. Mengimport package java.sql

– Program Java yang menggunakan JDBC harus mengimpor package java.sql, sehingga program dapat mengenali DriverManager, Connection dan ResultSet.

– Contoh mengimpor package java.sql import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

2. Mendefinisikan URL untuk Koneksi Database

– Setelah load driver sukses, perlu mendefinisikan URL lokasi dari database.
– Bentuk umum JDBC URL sebagai berikut:

   jdbc:databaseserver://[hostname][,failoverhost…][:post]/[dbname][?param1=value1][&param2=value2]…

Contoh:

String url = “jdbc:mysql://localhost:3306//dbmahasiswa;

user=root&password=”;

String url = “jdbc:odbc:dbmahasiswa”;

3. Memanggil driver JDBC

– Untuk koneksi dengan database yang digunakan pada program java dengan JDBC, harus menggunakan driver.

-Driver merupakan library atau API (Application Programming Interface).

tabel daftar nama driver :

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

4. Melakukan Koneksi Ke Database
– Untuk melakukan koneksi ke database, dapat menggunakan metode getConnection dari kelas DriverManager
– Ada beberapa argument yang berbeda dari method getConnection() yang dipanggil dari DriverManager, yaitu: getConnection(String url, String User, String password)

Contoh:

try{
String url = “jdbc:mysql://localhost:3306/db_mahasiswa”;
String user = “root”;
String password = “”;
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(“Proses koneksi berhasil”);
} catch(SQLException sqle){
System.out.println(“Proses koneksi gagal”);
}

5. Membuat Objek Statement

diperlukan untuk menjalankan perintah SQL dari program java ke database server dan mendapatkan ResultSet

Statement stmt = Connection.createStatement;

atau

Statement stmt;

stmt = Con.createStatement;

6. Melakukan Query atau Update

– Untuk mengirim query dan mengeksekusi, mengunakan metode executeQuery yang mengembalikan objek bertipe ResultSet. Method executeQuery digunakan untuk Statement Select. Sedangkan method executeUpdate untuk Statement Insert, Update dan Delete.

Contoh:

String qry = “select * from mahasiswa”;
ResultSet rslt = Statement.executeQuery($qry);

atau

String insert=”insert into mahasiswa values (‘”+nim+”‘,'”+nama+”‘,'”+alamat+”‘)”;
Statement stmt;

…..

stmt = con.createStatement;
stmt.executeUpdate(insert);

7. Memproses Hasil

– Dalam memproses hasil, akan menggunakan objek ResultSet.

while(rslt.next()){
Out.println(rslt.getString(1)+” “+rslt.getString(2);
}
– method rslt.next() digunakan untuk menuju ke data berikutnya hingga akhir data.
– Method getString diikuti nomor kolom (fields) digunakan untuk memproses data sebagai string yang kemudian ditampilkan dengan metode out.println.

8. Menutup Koneksi

– Sebelum menutup koneksi database, harus melepaskan objek Statement terlebih dahulu.

Contoh:

Statement.close();

Connection.close();

9.  Menambah penanganan error (error handling)

– Penggunaan penanganan kesalahan dalam program sangat penting, karena jika proses salah ada instruksi yang dikerjakan atau kita isi dengan pesan kesalahan. Misalnya saja penanganan kesalahan jika driver jdbc tidak ditemukan.

Contoh:

try {

           Class.forName(“com.mysql.jdbc.Driver”);

      } catch(java.lang.ClassNotFoundException e) {

         System.err.print(“ClassNotFoundException: “);

         System.err.println(e.getMessage());

      }
Melakukan modifikasi database
menggunakan statement.executeUpdate(str);

1. UPDATE

UPDATE

 

UPDATE2

2. DELETE

DELETE

– Pada coding diatas adalah method untuk menghapus stok yang ada di Table_Stok yang mana akan menghapus satu baris dari yang telah kita pilih,

– sebelum menghapus akan keluar pesan apakah yakin untuk menghapus data ini?

– Pada coding ini ada syntax sql yang mana akan menghapus data apabila primary keynya sesuai yaitu kode_pulsa yang terletak pada row ke 3, karena row dimulai dari 0.

DELETE2

– Pada coding pada baris 9 sampai 14 untuk membuat variable yang dibutuhkan beserta tipe datanya.

– Pada coding diatas pada baris 19 sampai 25 untuk mengkoneksi program ini ke database yang database bernama pembelian.

3. SELECT

– Karena query SQL SELECT di sini adalah statis sehingga kita hanya membuat objekPernyataan dari sambungan.
– Loop yang terdapat dalam hasil ditetapkan dengan berulang kali memeriksa nilai kembali dari metode ResultSet berikutnya ().
– Metode berikutnya () memindahkan kursor maju dalam hasil ditetapkan untuk memeriksa apakah ada catatan yang tersisa. Untuk setiap iterasi, hasil set berisi data untuk baris saat ini.

SELECT

– Mengambil nilai dari kolom kedua pada baris saat ini, yang merupakan kolom username.

– Nilai tersebut dicor ke String karena kita tahu bahwa kolom username adalah tipe VARCHAR berdasarkan skema database yang disebutkan sebelumnya.

– Perlu diingat bahwa indeks kolom sini 1 berbasis, kolom pertama akan di index 1, yang kedua pada indeks 2, dan seterusnya. Jika Anda tidak yakin atau tidak tahu persis indeks kolom.

contoh

SELECT2

4. update

– Mirip seperti Insert namun yang menjadi pembedanya adalah melakukan perubahan data yang dilakukan oleh query data base dengan dibantu oleh java (aplikasi pihak ke -3).

– Sebelum akan melakukan update biasanya dibutuh kan statement dari data INSERT awal, dan ketika sudah nanti akan berubah data tersebut menjadi data baru

CTH UPDATE1

 

referensi:

http://adhamhusein.blogspot.co.id/2015/05/odbc-dan-jdbc.html

https://id.wikipedia.org/wiki/Open_Database_Connectivityhttp://coedin.blogspot.co.id/2012/04/odbc-driver-koneksi-berbagai-database.html

Leave a Reply

Your email address will not be published. Required fields are marked *