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