1
JDBC
(Java Database Connectivity)
2
JDBC
 API (Application Programming Interface) menyediakan
interface universal ke basisdata
 Package : java.sql
 SQL : Standard Query Language
 JDBC menyediakan kelas-kelas :
 DriverManager : kelas ini digunakan untuk membuat koneksi
ke database
 Connection : kelas ini merepresentasikan koneksi ke database
tertentu
 Statement : kelas ini merepresentasikan sebuah query yang
akan dieksekusi ke database.
 PreparedStatement
 CallableStatement
 ResultSet : kelas ini merepresentasikan hasil eksekusi query
3
JDBC Driver
 JDBC menggunakan driver yang spesifik untuk
masing-masing jenis database.
 Pendefinisian driver yang digunakan dilakukan dengan
jalan me-load class driver yang diinginkan.
class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
class.forName(“org.gjt.mm.mysql.Driver”);
 Driver untuk ODBC sun.jdbc.odbc.JdbcOdbcDriver
sudah disediakan oleh sun dalam J2SDK
 Driver untuk mySQL org.gjt.mm.myql.Driver dapat
didownload secara free
4
Menggunakan JDBC Driver
 Buatlah definisi DataSource yang akan digunakan
pada ODBC datasource control panel (misalkan dibuat
datasource bernama Mahasiswa)
 Pada program java, load kelas Driver untuk ODBC
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
 Buka koneksi ke ODBC dengan mendefinisikan URL
untuk DataSource tersebut dengan format :
jdbc:odbc:mahasiswa
 Dimana ODBC adalah nama driver yang digunakan
dan mahasiswa adalah nama datasource dari ODBC
5
Connection
 Connection adalah representasi hubungan
ke database
 Connection dibuat dengan mendefinisikan
url string yang sesuai:
Connection con =
DriverManager.getConnection(“jdbc:odbc.mahasiswa”);
 Connection digunakan untuk membuat
statement (query yang akan dikirim
kedatabase) dan mendapatkan informasi
tentang database.
6
Query SQL
 Query dikirimkan ke database dalam
bentuk SQL Query, beberapa perintah yang
umum digunakan adalah sebagai berikut :
 CREATE : untuk membuat tabel baru
 SELECT : untuk mengambil record dari database
yang memenuhi kriteria tertentu
 INSERT : untuk menambah record kedalam
suatu tabel
 UPDATE : untuk merubah isi record tertentu
pada suatu tabel
 DELETE : untuk menghapus record pada suatu
tabel
 DROP : untuk menghapus sebuah tabel
7
CREATE TABLE
CREATE TABLE <NAMA TABLE>
(<NAMA KOLOM><TIPE>,
<NAMA KOLOM><TIPE>,
….
PRIMARY KEY (<NAMA KOLOM>),
FOREIGN KEY (<NAMA KOLOM>),
REFERENCES <NAMA_TABEL>(<NAMA KOLOM>),
)
 Tipe dari sebuah kolom dapat berupa :
 Char(x), dimana x adalah ukuran / jumlah karakter,
 Varchar(x) serupa dengan char, namun alokasinya dilakukan
secara variabel
 Int(x), x adalah jumlah digit yang disediakan
 Date, untuk tipe tanggal
 Dan lain-lain tipe data yang spesifik untuk setiap database
8
SELECT
SELECT
<NAMA KOLOM>.
<NAMA KOLOM>,
….
FROM <NAMA TABLE>,
WHERE <Kondisi>
 SELECT digunakan untuk mengambil record
yang memenuhi kriteria tertentu, yang
diletakkan pada where,
Contoh :
Select nama,alamat from mahasiswa where
nim=“12345678”
9
INSERT
INSERT INTO <NAMA TABLE>
(<NAMA KOLOM><TIPE>,
<NAMA KOLOM><TIPE>,
….
)
VALUES
(<NILAI KOLOM>, <NILAI KOLOM>
….)
 Nilai kolom adalah data yang akan disisipkan.
10
UPDATE
UPDATE <NAMA TABLE>
SET
(<NAMA KOLOM> = <NILAI KOLOM>,
<NAMA KOLOM> = <NILAI KOLOM>,
….
)
WHERE <KONDISI>
11
DELETE
DELETE FROM <NAMA TABLE>
WHERE <KONDISI>
DROP
DROP <NAMA TABLE>
12
STATEMENT
 Statement adalah kelas yang akan
mengeksekusi sebuah query
 Contoh query :
 CREATE TABLE MAHASISWA (NAMA
VARCHAR(20), ALAMAT VARCHAR(60), JURUSAN
VARCHAR(20))
 SELECT NAMA FROM MAHASISWA WHERE
JURUSAN=“INFORMATIKA”
 Statement dibuat dengan memanggil
createStatement dari object Connection
13
STATEMENT
 Statement yang tidak menghasilkan data dieksekusi
dengan memanggil method executeUpdate(),
sedangkan statement yang menghasilkan data
dieksekusi dengan memanggil method
executeQuery() yang akan menghasilkan object
bertipe ResultSet.
 Contoh :
stmt = con.createStatement();
stmt.executeUpdate(“CREATE TABLE MAHASISWA
(NAMA VARCHAR(20), ALAMAT VARCHAR(60),
JURUSAN VARCHAR(20));
14
PreparedStatement
 PreparedStatement : query yang memiliki parameter
yang dapat di set. Contoh : SELECT NAMA FROM
MAHASISWA WHERE JURUSAN = ?
 Simbol ? Merepresentasikan sebuah parameter yang
dapat di set
 PreparedStatement dibuat dengan memanggil method
prepareStatement dari object Connection
 Contoh :
PreparedStatement stmt =
con.prepareStatement(“SELECT * FROM MAHASISWA
WHERE NAMA=?”);
stmt.setString(1, “Amir”);
ResultSet.rset = stmt.executeQuery();
15
ResultSet
 ResultSet adalah tabel hasil query database
 ResultSet diakses secara per baris tabel, dimana untuk
maju kebaris berikutnya digunakan method next() dari
object ResultSet.
 Untuk mengambil field tertentu dari current row (baris saat
ini) digunakan perintah :
 getString(String fieldname):jika tipe data field berupa string
 getInt(int fieldname): jika tipe data field berupa integer, dll
 Contoh :
stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(“Select * from
Mahasiswa”);
String nama = rset.getString(“nama”);
16
Contoh Program
Membuat Tabel
import java.sql.*;
public class CreateMahasiswa {
public static void main (String Args[]){
String url = "jdbc:odbc:mahasiswa";
String query = "create table Siswa (NIM CHAR(8),NAMA
VARCHAR(32),ALAMAT VARCHAR(100),JURUSAN
VARCHAR(40))";
Statement stmt;
Connection con;
try {
Class. forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (java.lang.ClassNotFoundException e){
System.err.print(" ClassNotFoundException :");
System.err.print(e.getMessage());
}
17
Contoh Program
Membuat Tabel
try {
con = DriverManager.getConnection(url);
stmt= con.createStatement();
stmt.executeUpdate(query);
stmt.close();
con.close();
} catch (SQLException ex){
System.err.print(" SQLException : " +
ex.getMessage());
}
}
}
18
Contoh Program
INSERT ke database
import java.sql.*;
public class InsertMahasiswa {
public static void main (String Args[]){
String url = "jdbc:odbc:mahasiswa";
String query = "insert into siswa values
('12345678','Amir','Dago','Sistem Informasi')";
Statement stmt;
Connection con;
try {
Class. forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (java.lang.ClassNotFoundException e){
System.err.print(" ClassNotFoundException :");
System.err.println(e.getMessage());
}
19
Contoh Program
INSERT ke database
try {
con = DriverManager.getConnection(url);
stmt= con.createStatement();
stmt.executeUpdate(query);
stmt.close();
con.close();
} catch (SQLException ex){
System.err.print(" SQLException : " +
ex.getMessage());
}
}
}
20
INSERT ke database menggunakan
PreparedStatement
import java.sql.*;
public class InsertMahasiswa2 {
public static void main (String Args[]){
String url = "jdbc:odbc:mahasiswa";
String query = "insert into mahasiswa values (?,?,?,?)";
PreparedStatement stmt;
Connection con;
try {
Class. forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (java.lang.ClassNotFoundException e){
System.err.print(" ClassNotFoundException :");
System.err.println(e.getMessage());
}
21
INSERT ke database menggunakan
PreparedStatement
try {
con = DriverManager.getConnection(url);
stmt= con.prepareStatement(query);
stmt.setString(1,"23333333");
stmt.setString(2,"Siti");
stmt.setString(3,"Rumbai");
stmt.setString(4,"Teknik Informatika");
stmt.executeUpdate();
stmt.close();
con.close();
} catch (SQLException ex){
System.err.print(" SQLException : " + ex.getMessage());
}
}
}
22
Contoh Program SELECT
import java.sql.*;
public class SelectMahasiswa {
public static void main (String Args[]){
String url = "jdbc:odbc:mahasiswa";
String query = "select * from mahasiswa ";
Statement stmt;
Connection con;
try {
Class. forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (java.lang.ClassNotFoundException e){
System.err.print(" ClassNotFoundException :");
System.err.println(e.getMessage());
}
23
Contoh Program SELECT
try {
con = DriverManager.getConnection(url);
stmt= con.createStatement();
ResultSet rset = stmt.executeQuery(query);
while(rset.next()){
System.out.println("");
System.out.println("Nama : "+rset.getString("NAMA"));
System.out.println("Alamat : "+rset.getString("ALAMAT"));
System.out.println("Jurusan : "+rset.getString("JURUSAN"));
System.out.println("");
}
stmt.close();
con.close();
} catch (SQLException ex){
System.err.print(" SQLException : " + ex.getMessage());
}}}

Bab 9: Tentang Pengaturan Database MySQL Dengan Pemrograman Java.ppt

  • 1.
  • 2.
    2 JDBC  API (ApplicationProgramming Interface) menyediakan interface universal ke basisdata  Package : java.sql  SQL : Standard Query Language  JDBC menyediakan kelas-kelas :  DriverManager : kelas ini digunakan untuk membuat koneksi ke database  Connection : kelas ini merepresentasikan koneksi ke database tertentu  Statement : kelas ini merepresentasikan sebuah query yang akan dieksekusi ke database.  PreparedStatement  CallableStatement  ResultSet : kelas ini merepresentasikan hasil eksekusi query
  • 3.
    3 JDBC Driver  JDBCmenggunakan driver yang spesifik untuk masing-masing jenis database.  Pendefinisian driver yang digunakan dilakukan dengan jalan me-load class driver yang diinginkan. class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); class.forName(“org.gjt.mm.mysql.Driver”);  Driver untuk ODBC sun.jdbc.odbc.JdbcOdbcDriver sudah disediakan oleh sun dalam J2SDK  Driver untuk mySQL org.gjt.mm.myql.Driver dapat didownload secara free
  • 4.
    4 Menggunakan JDBC Driver Buatlah definisi DataSource yang akan digunakan pada ODBC datasource control panel (misalkan dibuat datasource bernama Mahasiswa)  Pada program java, load kelas Driver untuk ODBC Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);  Buka koneksi ke ODBC dengan mendefinisikan URL untuk DataSource tersebut dengan format : jdbc:odbc:mahasiswa  Dimana ODBC adalah nama driver yang digunakan dan mahasiswa adalah nama datasource dari ODBC
  • 5.
    5 Connection  Connection adalahrepresentasi hubungan ke database  Connection dibuat dengan mendefinisikan url string yang sesuai: Connection con = DriverManager.getConnection(“jdbc:odbc.mahasiswa”);  Connection digunakan untuk membuat statement (query yang akan dikirim kedatabase) dan mendapatkan informasi tentang database.
  • 6.
    6 Query SQL  Querydikirimkan ke database dalam bentuk SQL Query, beberapa perintah yang umum digunakan adalah sebagai berikut :  CREATE : untuk membuat tabel baru  SELECT : untuk mengambil record dari database yang memenuhi kriteria tertentu  INSERT : untuk menambah record kedalam suatu tabel  UPDATE : untuk merubah isi record tertentu pada suatu tabel  DELETE : untuk menghapus record pada suatu tabel  DROP : untuk menghapus sebuah tabel
  • 7.
    7 CREATE TABLE CREATE TABLE<NAMA TABLE> (<NAMA KOLOM><TIPE>, <NAMA KOLOM><TIPE>, …. PRIMARY KEY (<NAMA KOLOM>), FOREIGN KEY (<NAMA KOLOM>), REFERENCES <NAMA_TABEL>(<NAMA KOLOM>), )  Tipe dari sebuah kolom dapat berupa :  Char(x), dimana x adalah ukuran / jumlah karakter,  Varchar(x) serupa dengan char, namun alokasinya dilakukan secara variabel  Int(x), x adalah jumlah digit yang disediakan  Date, untuk tipe tanggal  Dan lain-lain tipe data yang spesifik untuk setiap database
  • 8.
    8 SELECT SELECT <NAMA KOLOM>. <NAMA KOLOM>, …. FROM<NAMA TABLE>, WHERE <Kondisi>  SELECT digunakan untuk mengambil record yang memenuhi kriteria tertentu, yang diletakkan pada where, Contoh : Select nama,alamat from mahasiswa where nim=“12345678”
  • 9.
    9 INSERT INSERT INTO <NAMATABLE> (<NAMA KOLOM><TIPE>, <NAMA KOLOM><TIPE>, …. ) VALUES (<NILAI KOLOM>, <NILAI KOLOM> ….)  Nilai kolom adalah data yang akan disisipkan.
  • 10.
    10 UPDATE UPDATE <NAMA TABLE> SET (<NAMAKOLOM> = <NILAI KOLOM>, <NAMA KOLOM> = <NILAI KOLOM>, …. ) WHERE <KONDISI>
  • 11.
    11 DELETE DELETE FROM <NAMATABLE> WHERE <KONDISI> DROP DROP <NAMA TABLE>
  • 12.
    12 STATEMENT  Statement adalahkelas yang akan mengeksekusi sebuah query  Contoh query :  CREATE TABLE MAHASISWA (NAMA VARCHAR(20), ALAMAT VARCHAR(60), JURUSAN VARCHAR(20))  SELECT NAMA FROM MAHASISWA WHERE JURUSAN=“INFORMATIKA”  Statement dibuat dengan memanggil createStatement dari object Connection
  • 13.
    13 STATEMENT  Statement yangtidak menghasilkan data dieksekusi dengan memanggil method executeUpdate(), sedangkan statement yang menghasilkan data dieksekusi dengan memanggil method executeQuery() yang akan menghasilkan object bertipe ResultSet.  Contoh : stmt = con.createStatement(); stmt.executeUpdate(“CREATE TABLE MAHASISWA (NAMA VARCHAR(20), ALAMAT VARCHAR(60), JURUSAN VARCHAR(20));
  • 14.
    14 PreparedStatement  PreparedStatement :query yang memiliki parameter yang dapat di set. Contoh : SELECT NAMA FROM MAHASISWA WHERE JURUSAN = ?  Simbol ? Merepresentasikan sebuah parameter yang dapat di set  PreparedStatement dibuat dengan memanggil method prepareStatement dari object Connection  Contoh : PreparedStatement stmt = con.prepareStatement(“SELECT * FROM MAHASISWA WHERE NAMA=?”); stmt.setString(1, “Amir”); ResultSet.rset = stmt.executeQuery();
  • 15.
    15 ResultSet  ResultSet adalahtabel hasil query database  ResultSet diakses secara per baris tabel, dimana untuk maju kebaris berikutnya digunakan method next() dari object ResultSet.  Untuk mengambil field tertentu dari current row (baris saat ini) digunakan perintah :  getString(String fieldname):jika tipe data field berupa string  getInt(int fieldname): jika tipe data field berupa integer, dll  Contoh : stmt = con.createStatement(); ResultSet rset = stmt.executeQuery(“Select * from Mahasiswa”); String nama = rset.getString(“nama”);
  • 16.
    16 Contoh Program Membuat Tabel importjava.sql.*; public class CreateMahasiswa { public static void main (String Args[]){ String url = "jdbc:odbc:mahasiswa"; String query = "create table Siswa (NIM CHAR(8),NAMA VARCHAR(32),ALAMAT VARCHAR(100),JURUSAN VARCHAR(40))"; Statement stmt; Connection con; try { Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (java.lang.ClassNotFoundException e){ System.err.print(" ClassNotFoundException :"); System.err.print(e.getMessage()); }
  • 17.
    17 Contoh Program Membuat Tabel try{ con = DriverManager.getConnection(url); stmt= con.createStatement(); stmt.executeUpdate(query); stmt.close(); con.close(); } catch (SQLException ex){ System.err.print(" SQLException : " + ex.getMessage()); } } }
  • 18.
    18 Contoh Program INSERT kedatabase import java.sql.*; public class InsertMahasiswa { public static void main (String Args[]){ String url = "jdbc:odbc:mahasiswa"; String query = "insert into siswa values ('12345678','Amir','Dago','Sistem Informasi')"; Statement stmt; Connection con; try { Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (java.lang.ClassNotFoundException e){ System.err.print(" ClassNotFoundException :"); System.err.println(e.getMessage()); }
  • 19.
    19 Contoh Program INSERT kedatabase try { con = DriverManager.getConnection(url); stmt= con.createStatement(); stmt.executeUpdate(query); stmt.close(); con.close(); } catch (SQLException ex){ System.err.print(" SQLException : " + ex.getMessage()); } } }
  • 20.
    20 INSERT ke databasemenggunakan PreparedStatement import java.sql.*; public class InsertMahasiswa2 { public static void main (String Args[]){ String url = "jdbc:odbc:mahasiswa"; String query = "insert into mahasiswa values (?,?,?,?)"; PreparedStatement stmt; Connection con; try { Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (java.lang.ClassNotFoundException e){ System.err.print(" ClassNotFoundException :"); System.err.println(e.getMessage()); }
  • 21.
    21 INSERT ke databasemenggunakan PreparedStatement try { con = DriverManager.getConnection(url); stmt= con.prepareStatement(query); stmt.setString(1,"23333333"); stmt.setString(2,"Siti"); stmt.setString(3,"Rumbai"); stmt.setString(4,"Teknik Informatika"); stmt.executeUpdate(); stmt.close(); con.close(); } catch (SQLException ex){ System.err.print(" SQLException : " + ex.getMessage()); } } }
  • 22.
    22 Contoh Program SELECT importjava.sql.*; public class SelectMahasiswa { public static void main (String Args[]){ String url = "jdbc:odbc:mahasiswa"; String query = "select * from mahasiswa "; Statement stmt; Connection con; try { Class. forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch (java.lang.ClassNotFoundException e){ System.err.print(" ClassNotFoundException :"); System.err.println(e.getMessage()); }
  • 23.
    23 Contoh Program SELECT try{ con = DriverManager.getConnection(url); stmt= con.createStatement(); ResultSet rset = stmt.executeQuery(query); while(rset.next()){ System.out.println(""); System.out.println("Nama : "+rset.getString("NAMA")); System.out.println("Alamat : "+rset.getString("ALAMAT")); System.out.println("Jurusan : "+rset.getString("JURUSAN")); System.out.println(""); } stmt.close(); con.close(); } catch (SQLException ex){ System.err.print(" SQLException : " + ex.getMessage()); }}}