Program Java yang sering kita buat, biasanya akan menyimpan data dalam memori
(RAM).
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.
1. Impor package java.sql.*;
2. Daftarkan driver atau pilih driver yang akan digunakan;
3. Buat Sebuah Koneksi;
4. Exsekusi sebuah Query;
5. Tutup koneksi dan selesai.
Berikan nama: belajar-java-mysql.
Sebelum mulai coding, siapkan dulu databasenya.
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…
Selamat 🎉
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.*;
Sebelum mulai membuat koneksi ke server, kita harus tentukan dulu driver
yang akan digunakan.
// register driver yang akan digunakan
Class.forName(JDBC_DRIVER);
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).
// buat query ke database
String sql = "SELECT * FROM buku";
Selain itu ada juga method untuk eksekusi query simpan, update, batch, dsb.
Tips: Tekan tobol Ctrl + Spasi saat menulis kode untuk melihatnya.
Setelah mendapatkan data dari database MySQL, selanjutnya kita bisa
tampilkan dengan perulangan.
// tampilkan hasil query
while(rs.next()){
System.out.println("ID Buku: " + rs.getInt("id_buku"));
System.out.println("Judul: " + rs.getString("judul"));
System.out.println("Pengarang: " + rs.getString("pengarang"));
}
Perulangan tersebut akan mengulang sebanyak isi tabelnya, atau dengan kata lain
“Ulangi selama rs masih punya isi”.
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.
Di dalam method ini kita akan melakukan perulangan selama terkoneksi dengan
database dan perulangannya akan berhenti setelah user memilih menu keluar.
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.
// 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();
}
}
Untuk melakukan query simpan, kita menggunakan method execute().
// 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();
}
}
Terakhir membuat method deleteBuku():
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");
} catch (Exception e) {
e.printStackTrace();
}
// 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);