java database connectivity (jdbc)

24
Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

Upload: dunne

Post on 19-Jan-2016

90 views

Category:

Documents


12 download

DESCRIPTION

Pemrograman Berorientasi Obyek Lanjut (IT251). Java Database Connectivity (JDBC). Ramos Somya, S.Kom., M.Cs. Pendahuluan. Komunikasi aplikasi dengan database - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Java Database Connectivity (JDBC)

Pemrograman Berorientasi Obyek Lanjut (IT251)

Ramos Somya, S.Kom., M.Cs.

Page 2: Java Database Connectivity (JDBC)

Komunikasi aplikasi dengan databaseAplikasi dan sistem database tidak menggunakan bahasa dan mekanisme yang sama. Sehingga program harus membangun koneksi ke database target sebelum dapat menjalankan statement SQL.

Page 3: Java Database Connectivity (JDBC)

Aplikasi Java tidak dapat mengakses data pada database secara langsung, JDBC merupakan interface yang menghubungkan antara aplikasi Java dan database.

JAVA application

Database

Page 4: Java Database Connectivity (JDBC)

JDBC – Java DataBase Connectivity Merupakan API (terdiri dari kumpulan

class dan method) untuk bekerja dengan database dalam java code.

Tujuan Utama : untuk membuat java code independen dari database aktual yang digunakan.

Page 5: Java Database Connectivity (JDBC)

JDBC menyediakan interface diatas berbagai modul konektifitas database yang beragam

JDBC didesain untuk bekerja dengan cara yang sama terhadap berbagai relasional database.

JAVA Application

JDBC

Oracle database

MS SQL Server

MySQL Server

Page 6: Java Database Connectivity (JDBC)
Page 7: Java Database Connectivity (JDBC)

Setiap database mempunyai driver masing-masing

JDBC driver manager berkomunikasi dengan driver yang selanjutnya akan berkomunikasi secara langsung ke database

JDBC API - Menyembunyikan detail implementasi - Murni dalam code java - Tidak menyembunyikan implementasi

SQL antara berbagai DBMS

Page 8: Java Database Connectivity (JDBC)

Konversi SQL data types ke Java data types: Integer – int Varchar2 – String Real – float Bit – boolean Date – java.sql.Date Time, TimeStamp – java.sql.Timestamp;

Page 9: Java Database Connectivity (JDBC)

Gunakan JDBC driver yang tepat: Oracle:

/usr/local/oracle/jdbc/lib/ojdbc14.jar on eniac or the Oracle web site.

MySQL: http://dev.mysql.com/downloads/connector/j/

Netbeans: built in

Tambahkan file ke Java classpath: Set CLASSPATH environment variable on CLI

OR Within your IDE

Page 10: Java Database Connectivity (JDBC)

1. Load driver2. Tentukan URL koneksi3. Membangun koneksi4. Membuat objek statement5. Execute query6. Proses Result7. Menutup koneksi

Page 11: Java Database Connectivity (JDBC)

Panggil class.forNameclass.forName(“oracle.jdbc.driver.OracleDriver) – untuk database oracleclass.forName(“com.mysql.jdbc.Driver”) –untuk mysql

Contoh

try {

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

} catch (ClassNotFoundException cnfe) {

System.out.println(“Error loading driver: ” + cnfe);

}

Page 12: Java Database Connectivity (JDBC)

MySQL on localhost: jdbc:mysql://localhost:3306/mysql

Bagian pertama dari URL (jdbc:mysql) spesifik terhadap dbms yang digunakan

Bagian kedua menjelaskan dimana server DBMS berada (localhost)

Bagian ketiga menjelaskan port number (1521, 3306 -default)

Bagian terakhir menjelaskan nama database yang digunakan (mysql)

Page 13: Java Database Connectivity (JDBC)

Panggil DriverManager.getConnection(DbURL, username, password)

DbURL merupakan url koneksi yang kita buat sebelumnya.

Username and password merupakan parameter yang digunakan sesuai dengan value yang diset pada database server.

Page 14: Java Database Connectivity (JDBC)

Objek statement sederhana: Statement statement =

connection.createStatement(); 3 tipe objek statement:

Statement Prepared Statement Callable Statement

Page 15: Java Database Connectivity (JDBC)

Tulis query sebagai Java String String query= “Select * from Users

where age>21”; Select query akan mengembalikan semua

record/tuple yang memenuhi query. Simpan dalam ResultSet Contoh: ResultSet rs =

statement.executeQuery(query);

Page 16: Java Database Connectivity (JDBC)

Bagaimana query yang merubah database?String query= “Update Users set age=21 where name=“John”;

panggil executeUpdate() untuk statements seperti INSERT, UPDATE, DELETE, etc

Contoh: ResultSet rs = statement.executeUpdate(query);

ResultSet akan mengandung jumlah rows(baris) yang telah dimodifikasi oleh perintah update.

Page 17: Java Database Connectivity (JDBC)

Bagaimana jika kita ingin menquery database menggunakan variabel dari user/program ?

Gunakan prepared statement Ganti nilai variabel dalam query string

dengan tanda ‘?’ contoh:

int age = 21; String query= “Update Users set age=? where name=“John”;PreparedStatement st = connection.prepareStatement(query);st.SetInt (1, age);

Page 18: Java Database Connectivity (JDBC)

Hasil dari query disimpan dalam ResultSet. Direpresentasikan oleh tabel dengan baris

dan kolom. Untuk mengiterasi melalui tiap rows dari

ResultSet:while (rs.next()) {

String name = rs.getString(1);int age = rs.getInt(“age”);

}

Page 19: Java Database Connectivity (JDBC)

next() melangkah ke row berikutnya dalam ResultSet

2 cara untuk mendapatkan hasil dari ResultSet

Melalui posisi kolom▪ Dimulai dari angka 1 ▪ Dapat terjadi mismatch antara nomor

kolom dalam result set dan table asli Melalui nama kolom

Page 20: Java Database Connectivity (JDBC)

Panggil connection.close() ketika selesai mengakses database.

Open connection ke database menggunakan resource sistem.

Kita dapat kehabisan koneksi utamanya dalam lingkungan multi-user .

Menutup koneksi dapat tidak dilakukan kalau database masih akan dioperasikan.

Page 21: Java Database Connectivity (JDBC)

Model-view-controller (MVC) adalah sebuah arsitektur perangkat lunak, Pola desain MVC memisah “logika domain” (logika aplikasi untuk pengguna) dari antarmuka pengguna (input dan presentasi).

Page 22: Java Database Connectivity (JDBC)

MVC juga memungkinkan pengembangan yang mandiri (pemisahan tugas programmer sesuai task MVC) dan memudahkan dalam proses testing dan maintenance kode programnya, serta kode program yang dapat digunakan berulang di beberapa aplikasi yang mirip (reusable) .

Implementasi pola desain MVC dapat diterapkan pada aplikasi berbasis web maupun aplikasi desktop.

Page 23: Java Database Connectivity (JDBC)
Page 24: Java Database Connectivity (JDBC)