Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke...
Transcript of Pemrograman Berorientasi Obyek Lanjut (IT251) · PDF fileprogram harus membangun koneksi ke...
Pemrograman Berorientasi Obyek Lanjut (IT251)
Ramos Somya, S.Kom., M.Cs.
Komunikasi aplikasi dengan databaseAplikasi dan sistem database tidak menggunakanbahasa dan mekanisme yang sama. Sehinggaprogram harus membangun koneksi ke databasetarget sebelum dapat menjalankan statement SQL.
Aplikasi Java tidak dapat mengakses data padadatabase secara langsung, JDBC merupakaninterface yang menghubungkan antara aplikasi Javadan database.
JAVA applicationDatabase
JDBC – Java DataBase Connectivity Merupakan API (terdiri dari kumpulan class dan
method) untuk bekerja dengan database dalam javacode.
Tujuan Utama : untuk membuat java codeindependen dari database aktual yang digunakan.
JDBC menyediakan interface diatas berbagai modulkonektifitas database yang beragam
JDBC didesain untuk bekerja dengan cara yangsama terhadap berbagai relasional database.
JAVA Application JDBC
Oracle database
MS SQL Server
MySQL Server
Setiap database mempunyai driver masing-masing JDBC driver manager berkomunikasi dengan driver
yang selanjutnya akan berkomunikasi secaralangsung 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. Load driver2. Tentukan URL koneksi3. Membangun koneksi4. Membuat objek statement5. Execute query6. Proses Result7. Menutup koneksi
Panggil class.forNameclass.forName(“oracle.jdbc.driver.OracleDriver) – untuk database oracle
class.forName(“com.mysql.jdbc.Driver”) –untuk mysql
Contohtry {
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) spesifikterhadap dbms yang digunakan
Bagian kedua menjelaskan dimana server DBMSberada (localhost)
Bagian ketiga menjelaskan port number (1521, 3306-default)
Bagian terakhir menjelaskan nama database yangdigunakan (mysql)
Panggil DriverManager.getConnection(DbURL,username, password)
DbURL merupakan url koneksi yang kita buatsebelumnya.
Username and password merupakan parameteryang digunakan sesuai dengan value yang disetpada database server.
Objek statement sederhana:Statement statement =connection.createStatement();
3 tipe objek statement:
Statement
Prepared Statement
Callable Statement
Tulis query sebagai Java StringString query= “Select * from Users where age>21”;
Select query akan mengembalikan semuarecord/tuple yang memenuhi query.
Simpan dalam ResultSetContoh:ResultSet rs = statement.executeQuery(query);
Bagaimana query yang merubah database?String query= “Update Users set age=21 wherename=“John”;
panggil executeUpdate() untuk statements sepertiINSERT, 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 databasemenggunakan 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 selesaimengakses database.
Open connection ke database menggunakanresource sistem.
Kita dapat kehabisan koneksi utamanya dalamlingkungan multi-user .
Menutup koneksi dapat tidak dilakukan kalaudatabase masih akan dioperasikan.
Model-view-controller (MVC) adalah sebuaharsitektur perangkat lunak, Pola desain MVCmemisah “logika domain” (logika aplikasi untukpengguna) dari antarmuka pengguna (input danpresentasi).
MVC juga memungkinkan pengembangan yangmandiri (pemisahan tugas programmer sesuai taskMVC) dan memudahkan dalam proses testing danmaintenance kode programnya, serta kode programyang dapat digunakan berulang di beberapa aplikasiyang mirip (reusable) .
Implementasi pola desain MVC dapat diterapkanpada aplikasi berbasis web maupun aplikasidesktop.