2. 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. 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. 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 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. 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. 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 <NAMA TABLE>
(<NAMA KOLOM><TIPE>,
<NAMA KOLOM><TIPE>,
….
)
VALUES
(<NILAI KOLOM>, <NILAI KOLOM>
….)
Nilai kolom adalah data yang akan disisipkan.
12. 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. 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. 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 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. 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. 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 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. 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. 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());
}