download

Matakuliah
Tahun
: M0864/Programming I
: 2009
Database Access
Pertemuan 11
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa akan
mampu:
– Mahasiswa dapat menerapkan penggunaan
konsep akses database pada pemograman GUI di
Java .
Bina Nusantara
Outline Materi
•
•
•
•
Relational Database Systems
Introduction to SQL
Database Table
JDBC
Bina Nusantara
Relational Database Systems
• Database System tidak hanya menyimpan data, tetapi menyediakan
fasilitas akses, update, manipulasi dan analisa data.
• Sebuah database system terdiri dari sebuah database, aplikasi yang
menyimpan data dan mengatur data dalam database dan aplikasi
program yang memberikan data dan memungkingkan user untuk
berinteraksi dengan database system
Relational Database Systems
Application Users
Application Programs
System Users
Database Management System (DBMS)
• Database adalah sebuah tempat
penyimpanan data dalam berupa
Database
informasi.
Relational Database Systems
• Vendor database system :
–
–
–
–
–
Microsoft
MySql
Oracle
IBM
Sybase
• 3 Kunci komponen dalam relational database systems :
– Structure : diwakilkan dengan data pada table
– Integrity : kunci (key) pada data (primary key dan foreign key)
– Language : untuk akses dan manipulasi data (SQL)
Relational Database Systems
Foreign Key
Enrollment Table
binusianId
Primary Key
Course Table
•
•
courseId
dataRegisted
grade
1100755660
CS001
8/14/2009
A
1100755660
CS002
8/14/2009
B
1100755660
CS003
8/14/2009
C
Column/ Field / Attribute
courseId
subjectId
courseNumber
title
SKS
CS001
CSCI
1320
Introduction to Java I
4
CS002
CSCI
1321
Introduction to Java II
4
CS003
CSCI
3741
Database System
6
Primary Key : identitas dari sebuah data, bersifat unik, tidak boleh sama
dalam 1 table
Foreign Key : primary key yang menumpang di table lain
Introduction to SQL
• Structured Query Language (SQL) sebuah bahasa untuk
mendefinisikan table dan integritas dan untuk
mengakses dan memanipulasi data.
• SQL dapat digunakan pada MySQL, Oracle, Sybase,
IBM DB2, IBM Informix, Borland Interbase, MS Access,
dll
Database Table
• Table merupakan objek-objek yang esensial dalam
sebuah database.
• Untuk membuat table menggunakan statement create
table yang terdiri dari nama table, attributes, dan type
serta attribute mana yang akan dijadikan primary key.
Database Table
Untuk membuat table Course dengan SQL :
create table Enrollment (
binusianId char(10) not null,
courseId char(5) not null,
dataRegisted date,
grade char(1),
primary key (binusianId)
);
binusianId
courseId
grade
1100755660
CS001
8/14/2009
A
1100755660
CS002
8/14/2009
B
1100755660
CS003
8/14/2009
C
Untuk menghapus table Course dengan SQL :
drop table Enrollment;
dataRegisted
Database Table
• Untuk mengambil isi informasi dari table :
select * from table_name where [condition]
- select : untuk mengambil column/field yang akan ditampilkan
- *
: menampilkan semua column/field dari tabel yang
bersangkutan
- from
: dari table mana data akan diambil, diikuti nama
tabelnya
- where : kondisi untuk data/row yang ingin ditampilkan.
Contoh :
courseId
select courseId from enrollment where binusianId = ‘1100755660’ and grade = ‘A’
CS001
CS002
CS003
Bina Nusantara
JDBC
• Java Database Connection (JDBC) :
menyediakan interface untuk mengakses dan memanipulasi database.
• Java API untuk mengembangkan aplikasi Java database.
• JDBC API, aplikasi menulis pada bahasa pemograman Java yang
men-eksekusi pernyataan SQL, mengambil hasil, menampilkan data
dalam interface yang user-friendly dan memperbanyak perubahperubahan dibelakang database.
JDBC
•
Relationship Java, JDBC, database
Java Programs
JDBC API
MySQL JDBC Driver
Oracle JDBC Driver
JDBC-ODBC JDBC Driver
Microsoft ODBC JDBC Driver
Local or Remote MySQL DB
Local or Remote MySQL DB
Local or Remote MySQL DB
JDBC
• 4 kunci dalam mengembangkan aplikasi database
menggunakan java:
1. Driver
- Application load database
- Interface dari java.sql.Driver
- SintaksDatabase
: Class.forName(JDBC_Driver_Class);
JDBC_Driver_Class
Source
Access
"sun.jdbc.odbc.JdbcOdbcDriver"
Already in JDK
MySql
"com.mysql.jdbc.Driver"
Companion Web Site
Oracle
"oracle.jdbc.driver.OracleDriver"
Companion Web Site
- Untuk JDBC-ODBC driver Access sudah terdapat di JDK
- Untuk MySQL JDBC (mysqljdbc.jar) download dari
www.cs.armstrong.edu.liang/intro7e/book/lib/mysqljdbc.jar
- Untuk Oracle JDBC (ojdbc14.jar) download dari
Bina Nusantara
www.cs.armstrong.edu.liang/intro7e/book/lib/0jdbc14.jar
2. Connection
-
JDBC
Konek ke database menggunakan interface Connection.
Sintaks : Connection con = DriverManager.getConnection(URL_Pattern);
Database
-
URL_Pattern
Access
jdbc:odbc:datasource
MySql
jdbc:mysql://hostname/dbname
Oracle
jdbc:oracle:thin:@hostname:port#oracleDBSID
Contoh : database Access : data.mdb
Connection con = DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=data.mdb”);
–
Tutup Koneksi :
con.close();
3. Statement
–
–
Membuat pernyataan SQL
Sintak dan contoh :
Statement st = con.createStatement();
4. ResultSet
–
–
–
Mengeksekusi pernyataan SQL.
Sintak : ResulSet rs = st.executeQuery(String SQL);
Contoh : ResulSet rs = st.executeQuery(“Select * from Enrollment”);
• Untuk mengambil hasil eksekusi dapat menggunakan
method pada ResultSet :
–
–
–
–
–
–
rs.next() : pointer record bergerak kebaris berikutnya return boolean.
rs.previous() : pointer record bergerak kebaris sebelumnya return boolean.
rs.getString(Field_label) : mengambil 1 data dari 1 field bertipe string.
rs.getDouble(Field_label) : mengambil 1 data dari 1 field bertipe double.
rs.getInt(Field_label) : mengambil 1 data dari 1 field bertipe integer.
rs.getDate(Field_label) : mengambil 1 data dari 1 field bertipe date.
• Untuk field_label merupakan nama field atau indek field-nya pada
table yang dieksekusi.
• Contoh : ambil field binusianId pada table Enrollment
String binusian_Id;
If(rs.next())
binusian_Id = rs.getString(“binusianId”);
atau
binusian_Id = rs.getString(0);
Referensi
•
Introduction to Java Programming. 7ed. Liang. 2009. Chapter 37, hal 1261
•
Introduction to SQL
 http://www.w3schools.com/SQL/sql_intro.asp
•
Database Programming with JDBC and Java
 http://oreilly.com/catalog/javadata/chapter/ch04.html
•
Access Database Manipulation via JDBC (for Microsoft Access)
 http://www.planet-sourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=2691&lngWId=2

Retrieving Values from Result Sets
 http://java.sun.com/docs/books/tutorial/jdbc/basics/retrieving.html
Bina Nusantara