Java Database Connectivity (JDBC-1)

Slides:



Advertisements
Presentasi serupa
EXCEPTION HANDLING.
Advertisements

Mendapatkan Input dari Keyboard
Try, Catch, Finally Throws
Pemrograman JAVA (TIB09) Database Metadata dan Transaksi Progdi Teknik Informatika – Universitas Bunda Mulia.
Nama Anggota Kelompok :  Marina KW ( )  Robby Cahyadi ( )  Asdi Atmin F ( )  Refi Zulkarami ( )
Widhy Hayuhardhika NP, S.Kom.  PHP – MySql installed  MySql telah running (cek xampp control panel)  Database  Tabel  Query  SQL (Structured Query.
BAHASA PEMROGRAMAN JAVA
Kelas A & B Jonh Fredrik Ulysses STMIK PALANGKARAYA - JFU
JAVA Network Programming. Apa itu JAVA? ● Bahasa pemrograman berorientasi objek yang dikembangkan oleh Sun Microsystems sejak tahun ● Dikembangkan.
Pemrograman Berorientasi Objek
Database Create-Retrieve-Update-Delete (CRUD)
Konsep Basis Data di Web
Sistem Komunikasi.
Tugas 2 Kuliah Pemrograman Web Menggunakan JSP
Workshop SCS: Java Game Programming
Java Database Connectivity dan Studi Kasus Online BookShop
Flow Control & Exception Handling
Java Database Connectivity (JDBC) JDBC adalah Application Programming Interface (API) yang dirancang untuk mengakses Database.
Oleh : Kholid Fathoni, S.Kom., M.T.
Pemrograman Database dengan JAVA
Database MySQL.
Button Save Delete Edit
Pemrograman JAVA (TIB09)
PHP - MySQL.
Mendapatkan input dari keyboard
Struktur Kode Aplikasi Java (1)
JDBC Ada 7 lanhkah untuk mengakses database: Load the JDBC Driver
Java Server Pages D4 LJ-PJJ Dasar Pemrograman Web Database Eru©Juli-2009 PENS – ITS.
JDBC Oleh: Idris Winarno.
Internet Programming MySQL
Pemrogramn Berorientasi Obyek MySQL
Koneksi Database Java dan Access
DEPARTMENT OF ELECTRICAL ENGINEERINGGADJAHMADA UNIVERSITY JAVA & DATABASE.
PL/SQL PROGRAMMING PL/SQL adalah prosedur berkelanjutan dari Oracle -SQL yang menawarkan satu bentuk bahasa pemrograman. PL/SQL memungkinkan user atau.
Pengembang aplikasi memiliki kemampuan untuk memperbaiki beberapa parameter TCP, seperti buffer dan maksimum ukuran segmen maksimum Socket Programming.
Oleh : HILMY NUR R. – RYAN ABDI W. – KAISHA SATRIO N.H. – DENY SATRYA P. – F.X. YUDHA GAMMA C.H
Pertemuan II Kuliah Pemrograman Web Menggunakan JSP
JDBC-Metadata Java2 Advanced JDBC Metadata – Java2 Advanced.
- PERTEMUAN 8- NETWORK PBO. Pengantar Java mengijinkan anda untuk mempermudah mengembangkan aplikasi yang mengerjakan berbagai pekerjaan melalui jaringan.
Pertemuan 12 Pemrograman Berbasis Obyek Oleh Tita Karlita
Do you remember this?.  Strategy  Concrete Strategy  Context  Client Strategy Pattern consists of..
JDBC Java2 Advanced.
JDBC.
BAHASA PEMROGRAMAN 3 NETBEANS DATABASE PERTEMUAN KE 5
Try, Catch, Finally Throws
Pemrograman berbasis obyek
As’ad Djamalilleil Membangun Aplikasi Database Berbasis Client-Server Menggunakan JDBC dan MySQL – Bagian 2 As’ad.
Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.
1 JDBC-Update Java2 Advanced JDBC Update – Java2 Advanced.
Aplikasi Database pada InTouch - SQL Access Manager
FUNGSI-FUNGSI AKSES MySql
Akses Database Menggunakan JDBC
Java Database Connectivity Materi 5
Koneksi Database Java dan Access (ODBC)
7 DATABASE Client/Server Wiratmoko Y, ST C H A P T E R
Bahasa Pemrograman (Pemrograman Visual)
Pengembangan Aplikasi Berbasis Web
Pemrograman VB.NET Pertemuan 10.
As’ad Djamalilleil Membangun Aplikasi Database Berbasis Client-Server Menggunakan JDBC dan MySQL – Bagian 2 As’ad.
As’ad Djamalilleil Membangun Aplikasi Database Berbasis Client-Server Menggunakan JDBC dan MySQL – Bagian 1 As’ad.
JSP dan Database.
Java Database Programming
PIBJ (PEMROGRAMAN INTERNET BERBASIS JAVA)
Mengelola Query Basis Data
JAVA.
Oleh : Rahmat Robi Waliyansyah, M.Kom.
JDBC (Java Database Connectivity)
Java Database Connectivity (JDBC)
Bahasa Pemrograman Latihan Database.
Create Read Update Database
Transcript presentasi:

Java Database Connectivity (JDBC-1) Sumber : Core WebProgramming Pengarang : Marty Hall – Larry Brown Slide : Riyanto Sigit

JDBC JDBC adalah Application Programming Interface (API) yang dirancang untuk mengakses database universal berdasarkan SQL. JDBC terdiri atas JDBC 1.0 API yang memberika fungsi-fungsi dasar untuk akses data. JDBC 2.0 API memberikan tambahan ke fungsi-fungsi dasar dengan kelebihan-kelebihan lain yang lebih mutakhir.

JDBC API JDBC adalah suatu nama trade mark, bukan sebuah singkatan. Tapi JDBC sering dikira singkatan dari Java Database Connectivity. JDBC API terdiri dari sejumlah class dan interface yang ditulis dalam bahasa Java yang menyediakan API standar sebagai alat bantu bagi pembuat program dan memberikan kemungkinan untuk menulis aplikasi database dengan menggunakan semua Java API. JDBC API memudahkan untuk mengirim statement SQL ke sistem database relasional dan mendukung bermacam-macam bahasa SQL. Keunggulan JDBC API adalah sebuah aplikasi dapat mengakses sembarang sumber data dan dapat berjalan pada sembarang platform yang mempunyai Java Virtual Machine(JVM) Sehingga kita tidak perlu menulis satu program untuk mengakses database Sybase, Oracle atau Access dan lain-lain. Kita cukup menulis satu program yang menggunakan JDBC API, dan program dapat mengirimkan statement SQL atau statement lain ke sumber data tertentu. Dengan aplikasi yang ditulis dalam bahasa Java seseorang tidak perlu khawatir untuk menulis aplikasi yang berbeda-beda agar dapat berjalan pada platform yang berbeda-beda.

Apa yang dilakukan JDBC? Membangun sebuah koneksi ke sumber data (data source). Mengirim statement ke sumber data. Memproses hasil dari statement tersebut

Model 2-tier dan 3-tier Untuk akses database, JDBC API mendukung baik model 2-tier maupun 3-tier. Untuk model 2-tier, sebuah applet atau aplikasi java berbicara langsung ke database. Dalam hal ini diperlukan JDBC driver yang dapat berkomunikasi ke sumber data tersebut. Sebuah perintah atau statement dari user dikirim ke database dan hasil dari statement dikirim balik ke user. Database dapat terletak pada mesin yang sama atau berbeda dengan klien, yang disambungkan dengan jaringan. Jika letak database berbeda dengan mesin klien maka disebut dengan client/server. Mesin user disebut dengan client dan mesin dimana database berada disebut dengan server. Jaringan ini bisa berupa LAN atau internet. Dalam model 3-tier, user mengirimkan perintah ke sebuah middle tier. Selanjutnya middle tier mengirimkan perintah tersebut ke database. Database memproses perintah tersebut dan mengirim balik hasilnya ke middle tier. Kemudian middle tier mengirimkannya ke user. Keuntungan model 3-tier ini adalah mempermudah aplikasi untuk dideploy dan meningkatkan performansi.

Tipe-tipe Driver JDBC 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. 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. 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. 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.

Tipe data JDBC

Langkah-langkah menggunakan JDBC Load driver Mendefinisikan koneksi URL Membuat koneksi Membuat obyek statement Mengeksekusi query Memproses result Menutup koneksi

Load driver Untuk mengaktifkan hubungan antar aplikasi dan database, maka sebuah Connection harus debentuk dengan menggunakan JDBC Driver. Connection dibentuk melalui satu class java.sql.DriverManager dan dua interface, yaitu java.sql.Driver dan java.sql.Connection. Class untuk JDBC diakses melalui java.sql.*. Driver adalah software yang menangani komunikasi ke database server. Berikut ini adalah contoh program jika yang kita gunakan adalah JDBC-ODBC driver. try { Class.forName(“sun.jdbc.odbc.JdbcDriver”); } catch (ClassNotFoundException ex) { System.err.println(“Driver Error”); ex.printStackTrace(); System.exit(1);

Load driver Penggunaan Class akan throw ClassNotFoundException. Dokumentasi driver anda akan memberikan nama class yang digunakan. Contoh : Oracle : Class.forName(“oracle.jdbc.OracleDriver”); Sybase: Class.forName(“com.sybase.jdbc.SybDriver”);

Mendefinisikan koneksi URL Menspesifikasikan lokasi database server. Untuk mendefinisikan URL kita bisa menggunakan dokumentasi driver. Untuk penggunaan JDBC di applet maka database server harus berada pada node yang sama dengan letak applet dan menggunakan proxy server yang me “reroute” request database ke actual server. Berikut ini contoh mendefinisikan url:

Membuat koneksi Membuat koneksi bisa dilakukan dengan cara memanggil method getConnection() dari DriverManager dengan melewatkan URL sebagai argumen. Method getConnection() akan melempar SQLException. Contoh:

Membuat koneksi Akses ke Driver dan DriverMAnager dapat menyebabkan Exception yang harus dikendalikan oleh program. Misal: try{ … … } catch(ClassNotFoundException ex) { System.err.println("Driver Error"); ex.printStackTrace(); System.exit(1); catch(SQLException ex) { System.err.println("Tidak Berhasil Koneksi dengan Northwind");

Membuat obyek statement Obyek Statement digunakan untuk mengirim query dan perintah ke database. Obyek statement dibuat dengan cara bekerjasama dengan class Connection. Untuk membuat obyek Statement maka kita harus memangil method createStatement() dari Connection. Contoh: Statement statement = connection.createStatement();

Mengeksekusi query Untuk mengeksekusi query kita bisa memanfaatkan objek Statement untuk memproses hasil query. Caranya adalah dengan memanggil method executeQuery() dari objek Statement. Method executeQuery() akan mengembalikan nilai yang bertipe ResulSet. Contoh: String sql=“select col1, col2, col3 from sometable”; ResultSet rs=statement.executeQuery(sql); Untuk memodifikasi database, gunakan statement.executeUpdate(sql); yang mendukung string sql UPDATE, INSERT INTO, DELETE

Memproses result Untuk memproses result kita bisa menggunakan method next() pada objek ResultSet untuk mendapatkan result per satu baris. Selama data masih ada method next() akan mengembalikan nilai true dan jika sudah tidak ada akan mengembalikan nilai false. Contoh: String nrp; String nama; while (rs.next()){ nrp=rs.getString(1); nama=rs.getString(2); System.out.println("NRP : " +nrp); System.out.println("NAMA : " +nama); System.out.println("-------------"); }

Memproses result Kolom pertama mempunyai index 1 bukan 0. Objek ResultSet otomatis akan ditutup bila ada objek ResultSet baru. ResultSet memberikan bermacam-macam method getXxx() dengan parameter indek kolom atau nama kolom dan mengembalikan data. Beberapa method yang ada pada ResultSet adalah sebagai berikut: findColumn() untuk mendapatkan index (integer value) berdasarkan nama kolom. getMetaData() untuk meretrieve informasi mengenai ResultSet, returns object ResultSetMetaData. wasNull() untuk mengetahui apakah getXxx() menghasilkan SQL null.

Menutup koneksi Karena membuka koneksi adalah mahal, maka penundaan langkah terakhir ini hanya jika masih ada operasi database yang dilakukan. Deklarasi untuk menutup koneksi harus didefinisikan secara eksplisit dengan cara sebagai berikut: connection.close();

Membuat Data Source Berikut ini adalah langkah-langkah untuk mengakses tabel yang tersimpan pada database Acces dengan menggunakan ODBC

Click Start, Settings, Control Panel, Administrative Tools, Data Sources(ODBC), System DSN, dan pilih Add

Memilih driver Microsoft Access, Finish, ketikkan nama Data Source Name dan tekan Select untuk memilih nama dan lokasi database

Navigasi pada directory msoffice, pilih Northwind Navigasi pada directory msoffice, pilih Northwind.mdb, tekan OK dan lanjutkan tekan OK pada window

Program Gunakan sun.jdbc.JdbcOdbcDriver sebagai nama class dari JDBC driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Gunakan “jdbc:odbc:Northwind” sebagai alamat database, dan gunakan empty string pada username dan password Connection con=DriverManager.getConnection(jdbc:odbc:Northwind,””,””);

Percobaan 1 Program yang mengakses dan menampilkan semua data pada kolom kedua dan ketiga pada tabel Employees pada database Northwind.mdb. Pada program ini database tidak berubah, karena hanya melakukan select query. Buatlah juga data source untuk database Northwind.mdb

import java.sql.*; public class NorthWind { private Connection con; NorthWind(){ con=null; } public ResultSet dbOpen() { String dbname="jdbc:odbc:Northwind"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection(dbname,"",""); if (con==null) System.err.println("Koneksi ke Database gagal"); else System.err.println("Koneksi ke Database Berhasil"); }catch(ClassNotFoundException ex) { System.err.println("Driver Error"); ex.printStackTrace(); System.exit(1); }catch(SQLException ex) { System.err.println("Tidak Berhasil Koneksi dengan Northwind"); ResultSet rs=null; Statement st; System.out.println("Employees\n" + "==========="); st=con.createStatement(); rs=st.executeQuery("SELECT * FROM employees"); }catch(SQLException ex){ return(rs);

public void showEmployee (ResultSet rs) throws SQLException { ResultSetMetaData rsData = rs.getMetaData(); String kolom3 = rsData.getColumnName(3); String kolom2 = rsData.getColumnName(2); while (rs.next()){ System.out.print(rs.getString(kolom3)+" "); System.out.println(rs.getString(kolom2)+" "); } public void dbClose(){ try { con.close(); catch(SQLException sqlex){ System.err.println("Error :Koneksi Database tidak Bisa diputus"); public static void main(String argv[]) throws Exception { NorthWind app=new NorthWind(); ResultSet rs; rs=app.dbOpen(); app.showEmployee(rs); app.dbClose();

Percobaan 2 Program yang melakukan insert yang berarti melakukan update data dan menampilkan data pada database. Pada contoh ini digunakan method executeUpdate() untuk mengupdate database.

import java.sql.*; public class Insert { private Connection con; Insert(){ con=null; } public void dbOpen() { String dbname="jdbc:odbc:Northwind"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection(dbname,"",""); if (con==null) System.err.println("Koneksi ke Database gagal"); else System.err.println("Koneksi ke Database Berhasil"); }catch(ClassNotFoundException ex) { System.err.println("Driver Error"); ex.printStackTrace(); System.exit(1); }catch(SQLException ex) { System.err.println("Tidak Berhasil Koneksi dengan Northwind"); public ResultSet select(){ ResultSet rs = null; Statement st; try{ st = con.createStatement(); String sql1 = "SELECT * FROM SHIPPERS"; rs = st.executeQuery(sql1); System.err.println("Tidak Berhasil update Northwind"); return(rs);

public void insert(){ try{ Statement st = con.createStatement(); String sql2 = "INSERT INTO SHIPPERS (ShipperID, CompanyName, Phone) VALUES (4,'Federal Express','(031) 555-1111')"; st.executeUpdate(sql2); }catch(SQLException ex) { System.err.println("Tidak Berhasil update Northwind"); System.exit(1); } public void showShippers(ResultSet rs){ ResultSetMetaData rsData = rs.getMetaData(); String kolom1 = rsData.getColumnName(1); String kolom2 = rsData.getColumnName(2); String kolom3 = rsData.getColumnName(3); while (rs.next()){ System.out.print(rs.getString(kolom1)+" "); System.out.print(rs.getString(kolom2)+" "); System.out.println(rs.getString(kolom3)+" "); System.err.println("Tidak Berhasil retrieve Northwind"); public void dbClose(){ try { con.close(); }catch(SQLException sqlex){ System.err.println("Error :Koneksi Database tidak Bisa diputus");

public static void main(String argv[]) throws Exception { Insert app = new Insert(); ResultSet rs; app.dbOpen(); rs = app.select(); System.out.println("Data Shippers sebelum insert"); app.showShippers(rs); app.insert(); System.out.println("Data Shippers sesudah insert"); app.dbClose(); }

Percobaan 3 Melakukan update data suatu record pada suatu tabel, dengan menggunakan query SET.

import java.sql.*; public class Set { private Connection con; Set(){ con=null; } public void dbOpen() { String dbname="jdbc:odbc:Northwind"; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection(dbname,"",""); if (con==null) System.err.println("Koneksi ke Database gagal"); else System.err.println("Koneksi ke Database Berhasil"); }catch(ClassNotFoundException ex) { System.err.println("Driver Error"); ex.printStackTrace(); System.exit(1); }catch(SQLException ex) { System.err.println("Tidak Berhasil Koneksi dengan Northwind"); public ResultSet select(){ ResultSet rs = null; Statement st; try{ st = con.createStatement(); String sql1 = "SELECT * FROM SHIPPERS"; rs = st.executeQuery(sql1); System.err.println("Tidak Berhasil update Northwind"); return(rs);

public void set(){ try{ Statement st = con.createStatement(); String sql2 = "UPDATE SHIPPERS SET CompanyName = 'TIKI' WHERE ShipperID=1"; st.executeUpdate(sql2); }catch(SQLException ex) { System.err.println("Tidak Berhasil update Northwind"); System.exit(1); } public void showShippers(ResultSet rs){ ResultSetMetaData rsData = rs.getMetaData(); String kolom1 = rsData.getColumnName(1); String kolom2 = rsData.getColumnName(2); String kolom3 = rsData.getColumnName(3); while (rs.next()){ System.out.print(rs.getString(kolom1)+" "); System.out.print(rs.getString(kolom2)+" "); System.out.println(rs.getString(kolom3)+" "); System.err.println("Tidak Berhasil retrieve Northwind"); public void dbClose(){ try { con.close(); }catch(SQLException sqlex){ System.err.println("Error :Koneksi Database tidak Bisa diputus");

public static void main(String argv[]) throws Exception { Set app = new Set(); ResultSet rs; app.dbOpen(); rs = app.select(); System.out.println("Data Shippers sebelum set"); app.showShippers(rs); app.set(); System.out.println("Data Shippers sesudah set"); app.dbClose(); }

Soal Latihan Buat sebuah program yang membuat tabel bernama BUKU dengan struktur tabel sebagai berikut: Berikut ini adalah query untuk membuat tabel BUKU: CREATE TABLE BUKU (NAMA_BUKU VARCHAR(40), ID_PENERBIT INTEGER, HARGA REAL, PENJUALAN INTEGER) Karena query diatas melakukan update terhadap database maka gunakan method executeUpdate(). Jangan lupa menentukan database yang digunakan untuk menyimpan tabel buku terlebih dahulu! Nama kolom Tipe data Panjang NAMA_BUKU VARCHAR 40 ID_PENERBIT INTEGER HARGA REAL PENJUALAN

Soal Latihan 2. Setelah membuat tabel pada nomor 1 diatas. Buatlah program yang digunakan untuk mengusi tabel BUKU tersebut dengan data sebagai berikut: 3. Setelah nomor 1 dan 2 selesai. Tampilkan semua data tabel BUKU tersebut dengan menggunakan metode next dan getXxx. Gunakan method executeQuery(); 4. Misal toko buku ini berhasil menjual buku Pemrograman Java sebanyak 5 buah. Maka lakukan update tabel untuk mengubah kolom PENJUALAN yang sebelumnya 0 menjadi 5. Gunakan query sebagai berikut: UPDATE BUKU SET PENJUALAN = 5 WHERE NAMA_BUKU = ‘Pemrograman Java’ NAMA_BUKU ID_PENERBIT HARGA PENJUALAN E-Learning 101 25000 Jaringan Tanpa Hardisk 203 23000 Oracle9i 311 54000 Pemrograman Java 49000