Java Database Connectivity (JDBC)

Download Report

Transcript Java Database Connectivity (JDBC)

Pemrograman Berorientasi Obyek Lanjut (IT251)
Ramos Somya, S.Kom., M.Cs.

Komunikasi aplikasi dengan database
Aplikasi dan sistem database tidak menggunakan
bahasa dan mekanisme yang sama. Sehingga
program harus membangun koneksi ke database
target sebelum dapat menjalankan statement SQL.

Aplikasi Java tidak dapat mengakses data pada
database secara langsung, JDBC merupakan
interface yang menghubungkan antara aplikasi Java
dan database.
JAVA application
Database
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.



JDBC menyediakan interface diatas berbagai modul
konektifitas database yang beragam
Oracle
database
JAVA Application
JDBC
MS SQL Server
MySQL Server

JDBC didesain untuk bekerja dengan cara yang
sama terhadap berbagai relasional database.
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



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;

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
1.
2.
3.
4.
5.
6.
7.
Load driver
Tentukan URL koneksi
Membangun koneksi
Membuat objek statement
Execute query
Proses Result
Menutup koneksi

Panggil class.forName
class.forName(“oracle.jdbc.driver.OracleDriver) – untuk database oracle
class.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);
}





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)
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.

Objek statement sederhana:
Statement statement =
connection.createStatement();
 3 tipe objek statement:
 Statement
 Prepared Statement
 Callable Statement

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);


Bagaimana query yang merubah database?
String query=
name=“John”;
“Update
Users
set
age=21
where
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.
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);
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”);
}


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
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.


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).
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.
