Tutorial Java Dan MySQL
Tutorial Java Dan MySQL
Program Java yang sering kita buat, biasanya akan menyimpan data dalam memori
(RAM).
Agar data yang diinputkan dapat disimpan secara ‘permanen’, kita membutuhkan
database.
Pada kesempatan ini, kita akan belajar cara menghubungkan Java dengan MySQL
dan membuat sebuah program CRUD sederhana berbasis teks.
JDBC bertugas menyediakan koneksi ke database, sehingga kita bisa mengakses dan
mengelola datanya dari program Java.
Selanjutnya kita akan mencoba menghubugkan program yang sudah kita buat
dengan database ini.
package belajar.java.mysql;
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
Setelah itu…
Programnya belum dapat dieksekusi, karena library MySQL JDBC Driver belum
kita tambahkan ke dalam proyek.
Klik kanan pada Libraries, lalu pilih Add Library dan MySQL JDBC Driver:
Kita telah berhasil menghubungkan program Java dengan database MySQL dan
menampilkan datanya.
Kode di atas maksudnya adalah mengimpor class dan interface yang kita butuhkan.
import java.sql.*;
Setelah kita mengimpor, selanjutnya kita siapkan dulu sebuah konstanta untuk
parameter yang akan digunakan saat membuat koneksi ke database.
DB_URL menyatakan URL server database dan database yang akan digunakan.
Lalu USER untuk username databasenya dan PASS untuk password.
Di komputer saya, password MySQL-nya adalah kopi, hooo~ ketahuan deh .
Sebelum mulai membuat koneksi ke server, kita harus tentukan dulu driver yang
akan digunakan.
MySQL
Driver: com.mysql.jdbc.Driver,
URL: jdbc:mysql://hostname/databaseName;
ORACLE
Driver: oracle.jdbc.driver.OracleDriver,
URL jdbc:oracle:thin:@hostname:portNumber:databaseName;
DB2
Driver: COM.ibm.db2.jdbc.net.DB2Driver,
URL: jdbc:db2:hostname:portNumber/databaseName
Sybase
Driver: com.sybase.jdbc.SybDriver,
URL: jdbc:sybase:Tds:hostname:portNumber/databaseName
Setelah itu, buat sebuah Query, eksekusi, dan hasilnya akan disimpan ke dalam
objek rs (ResultSet).
Selain itu ada juga method untuk eksekusi query simpan, update, batch, dsb.
Setelah mendapatkan data dari database MySQL, selanjutnya kita bisa tampilkan
dengan perulangan.
Perulangan tersebut akan mengulang sebanyak isi tabelnya, atau dengan kata lain
“Ulangi selama rs masih punya isi”.
Cara mengambil nilai dari objek rs menggunakan method get* dengan parameter
nama kolom di tabel database.
Pastikan paramternya sama persis dengan nama kolom di database. Jika di database
pakai huruf kapital, ya ikuti pakai huruf kapital.
stmt.close();
conn.close();
Gampang kan?
Silahkan buat Class baru di dalam proyek yang tadi dengan nama JavaCRUD.
Kita akan isi Class tersebut dengan fungsi-fungsi atau method untuk melakukan
CRUD.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
Seteleh itu, kita siapkan parameter, variabel, dan objek yang dibutuhkan.
Selanjutnya membuat method main() yang merupakan entri point dari sebuah
program.
Di dalam method ini kita akan melakukan perulangan selama terkoneksi dengan
database dan perulangannya akan berhenti setelah user memilih menu keluar.
public static void main(String[] args) {
try {
// register driver
Class.forName(JDBC_DRIVER);
while (!conn.isClosed()) {
showMenu();
}
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
try {
int pilihan = Integer.parseInt(input.readLine());
switch (pilihan) {
case 0:
System.exit(0);
break;
case 1:
insertBuku();
break;
case 2:
showData();
break;
case 3:
updateBuku();
break;
case 4:
deleteBuku();
break;
default:
System.out.println("Pilihan salah!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println("+--------------------------------+");
System.out.println("| DATA BUKU DI PERPUSTAKAAN |");
System.out.println("+--------------------------------+");
while (rs.next()) {
int idBuku = rs.getInt("id_buku");
String judul = rs.getString("judul");
String pengarang = rs.getString("pengarang");
Method show data hanya berfungsi untuk menampilkan data hasil dari database.
// simpan buku
stmt.execute(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
Method ini akan mengembalikan nilai boolean: true bila query berhasil
dan false bila gagal.
// query update
String sql = "UPDATE buku SET judul='%s', pengarang='%s' WHERE
id_buku=%d";
sql = String.format(sql, judul, pengarang, idBuku);
} catch (Exception e) {
e.printStackTrace();
}
}
package belajar.java.mysql;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
// register driver
Class.forName(JDBC_DRIVER);
while (!conn.isClosed()) {
showMenu();
}
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
try {
int pilihan = Integer.parseInt(input.readLine());
switch (pilihan) {
case 0:
System.exit(0);
break;
case 1:
insertBuku();
break;
case 2:
showData();
break;
case 3:
updateBuku();
break;
case 4:
deleteBuku();
break;
default:
System.out.println("Pilihan salah!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
try {
rs = stmt.executeQuery(sql);
System.out.println("+--------------------------------+");
System.out.println("| DATA BUKU DI PERPUSTAKAAN |");
System.out.println("+--------------------------------+");
while (rs.next()) {
int idBuku = rs.getInt("id_buku");
String judul = rs.getString("judul");
String pengarang = rs.getString("pengarang");
// query simpan
String sql = "INSERT INTO buku (judul, pengarang) VALUE('%s',
'%s')";
sql = String.format(sql, judul, pengarang);
// simpan buku
stmt.execute(sql);
} catch (Exception e) {
e.printStackTrace();
}
// query update
String sql = "UPDATE buku SET judul='%s', pengarang='%s' WHERE
id_buku=%d";
sql = String.format(sql, judul, pengarang, idBuku);
} catch (Exception e) {
e.printStackTrace();
}
}
// hapus data
stmt.execute(sql);