Cara Connect MySql ke Java
Pengertian JDBC
JDBC merupakan teknologi
standar Java yang menjadi bagian dari JDK (J2SDK) untuk akses dan pengolahan
database. Database yang didukung oleh Java cukup banyak, seperti : MySQL,
Postgres, Oracle, B2, Access dan lain-lain.
JDBC berisi kumpulan
kelas-kelas dan interface yang ditulis dengan bahasa Java. JDBC dapat digunakan
untuk membangun koneksi ke data source, mengirim statement ke data source,
memproses hasil statement tersebut.
Connect MySql ke Java
Langkah-langkah untuk
melakukan koneksi Java dan MySQL:
1. Mengimpor package java.sql
Program Java yang menggunakan JDBC harus mengimpor
package java.sql, sehingga program dapat mengenali DriverManager, Connection
dan ResultSet.
Contoh mengimpor package java.sql sebagai berikut:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
|
Atau cukup dengan :
import java.sql.*;
Keterangan :
·
DriverManager
: memanggil driver JDBC ke memori, dan dapat juga digunakan untuk membuka
koneksi ke sumber data.
·
Connection
: mempresentasikan suatu koneksi dengan suatu data source, juga digunakan untuk
membuat objek Statement, PreparedStatement dan CallableStatement.
·
Statement
: mempresentasikan suatu perintah SQL,
dan dapat digunakan untuk menerima objek ResultSet.
·
PreparedStatement
: merupakan alternatif untuk objek Statement SQL yang telah terkompilasi awal.
·
CallableStatement
: mempresentasikan suatu stored procedure, dan dapat digunakan untuk
menjalankan stored procedures yang terkompilasi dalam suatu RDBMS yang mendukung
fasilitas tersebut.
·
ResultSet
: mempresentasikan sebuah hasil dari
database yang dihasilkan dari statemen SQL SELECT.
·
SQLException
: suatu class exception yang membungkus kesalahan (error) pengaksesan database.
2. Memanggil driver JDBC
Untuk koneksi dengan database yang digunakan pada
program java dengan JDBC, harus menggunakan driver. Driver merupakan library
atau API (Application Programming Interface). Masing-masing database
menggunakan driver yang berbeda.
Berikut ini tabel daftar nama driver dari beberapa
database server :
Database Driver
Nama Driver
JDBC-ODBC
sun.jdbc.odbc.JdbcOdbcDriver
MySQL
com.mysql.jdbc.Driver
PostgreSQL
org.postgresql.Driver
Microsoft SQL Server
com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle
oracle.jdbc.driver.OracleDriver
IM DB2
COM.ibm.db2.jdbc.app.DB2Driver
|
Contoh untuk koneksi ke MySql:
String url =
"jdbc:mysql://localhost:3306/db_mahasiswa";
try{
Class.forName("com.mysql.jdbc.Driver");
con =
DriverManager.getConnection(url,"root","");
}
catch(ClassNotFoundException ex) {
System.err.println("Driver Error");
System.exit();
}
catch(SQLException e){
System.out.println("Tidak berhasil koneksi");
}
}
|
3. Mendefinisikan URL untuk Koneksi Database
Setelah load driver sukses, Anda perlu
mendefinisikan URL lokasi dari database. Bentuk umum JDBC URL sebagai berikut:
jdbc:databaseserver://[hostname][,failoverhost…][:post]/[dbname][?param1=value1][¶m2=value2]…
Contoh :
String url =
"jdbc:mysql://localhost:3306//dbmahasiswa;
user=root&password=";
String url = "jdbc:odbc:dbmahasiswa";
|
4. Melakukan Koneksi Ke Database
Untuk melakukan koneksi ke database, Anda dapat
menggunakan metode getConnection dari kelas DriverManager. Ada beberapa
argument yang berbeda dari method getConnection() yang dipanggil dari
DriverManager, yaitu:
getConnection(String url, String User, String
password)
Pada method ini hanya memerlukan argument url,
username dan password.
Method ini secara langsung mendefinikan nilai URL,
username dan password.
Contoh:
try{
String url =
"jdbc:mysql://localhost:3306/db_mahasiswa";
String user = "root";
String password = "";
Connection conn =
DriverManager.getConnection(url,user,password);
System.out.println("Proses koneksi
berhasil");
} catch(SQLException sqle){
System.out.println("Proses koneksi
gagal");
}
|
5. Membuat Objek Statement
Proses query memerlukan objek Statement. Objek
Statement dapat dibuat dari objek Connection. Objek Statement diperlukan untuk
menjalankan perintah SQL dari program java ke database server dan mendapatkan
ResultSet.
Statement stmt = Connection.createStatement;
atau
Statement stmt;
...
stmt = Con.createStatement;
|
6. Melakukan Query atau Update
Untuk mengirim query dan mengeksekusi, mengunakan
metode executeQuery yang mengembalikan objek bertipe ResultSet. Method
executeQuery digunakan untuk Statement Select. Sedangkan method executeUpdate
untuk Statement Insert, Update dan Delete.
String qry = "select * from mahasiswa";
ResultSet rslt = Statement.executeQuery($qry);
atau
String insert="insert into mahasiswa values
('"+nim+"','"+nama+"','"+alamat+"')";
Statement stmt;
…..
stmt = con.createStatement;
stmt.executeUpdate(insert);
|
7. Memproses Hasil
Memproses hasil adalah memproses ResultSet, tipe
objek yang dikembalikan oleh metode executeQuery dari objek Statement. Dalam
memproses hasil, akan menggunakan objek ResultSet.
while(rslt.next()){
Out.println(rslt.getString(1)+”
“+rslt.getString(2);
}
|
Method rslt.next() pada penggalan program di atas
digunakan untuk menuju ke data berikutnya hingga akhir data. Method getString
diikuti nomor kolom (fields) digunakan untuk memproses data sebagai string yang
kemudian ditampilkan dengan metode out.println.
8. Menutup Koneksi
Sebelum menutup koneksi database, harus melepaskan
objek Statement terlebih dahulu.
Contoh:
Statement.close();
Connection.close();
|
9. Menambah penanganan error (error
handling)
Penggunaan penanganan kesalahan dalam program
sangat penting, karena jika proses salah ada instruksi yang dikerjakan atau
kita isi dengan pesan kesalahan. Misalnya saja penanganan kesalahan jika driver
jdbc tidak ditemukan.
Contoh:
try {
Class.forName("com.mysql.jdbc.Driver");
}
catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
|
Squence Diagram
Pengertian Squence Diagram
Digunakan
untuk mendeskripsikan pada komunikasi antar object dan menggambarkan urutan
waktu dari aliran pemanggilan pada suatu method.
No
|
Simbol
|
Keterangan
|
1
|
|
Simbol yang Pertama ini bernama Actor atau dalam bahasa
indonesia nya aktor. Aktor ini mirip
sekali dengan aktor yang ada didalam use case diagram. Fungsinya pun sama
dengan aktor yang ada di use case diagram yakni untuk menandai bahwa ini
adalah orang atau sistem luar yang memiliki hubungan dengan objek yang ada
didalamnya.
Penggunaannya tidak hanya di peruntukan untuk orang saja, namun digunakan pula untuk sistem lain. Intinya simbol ini digunakan untuk suatu object yang terhubung dengan sistem yang akan kita buat nanti. Dalam praktiknya, tanda ini diletakan di bagian paling atas dalam sequence diagram, berbentuk seperti orang dengan nama dibawahnya. |
2
|
|
Simbol ini sama saja dengan nomor satu diatas. Dalam penggunaan nama dll
tidak memiliki perbedaan yang signifikan. Hanya saja penggambaranya yang
berbeda. Berbentuk kotak dengan inisial berupa nama aktor didalam
kotaknya.
Dari beberapa buku yang saya baca, dalam penggambarannya ada yang menggunakan garis bawah, ada pula yang tanpa garis bawah. Dalam pemberian nama untuk poin nomor satu dan dua ini harus mengandung kata benda suatu objek. |
3
|
|
Gambar disamping di gunakan untuk menandakan garis
hidup yang terdapat dalam sistem. Nama dari simbol ini adalah lifeline atau dalam bahasa
indonesianya sering disebut garis hidup. Simbol digunakan
untuk menandakan bahwa adanya tingkah laku pada aktor atau objek sistem yang
di rujuk.
Penerapannya diletakan dibawah masing-masing actor atau objek dengan bentuk garis putus-putus tanpa di beri nama (hanya garis putus-putus saja). |
4
|
|
Nomor 4 disamping ini bernama Object atau dalam bahasa
indonesia nya sering di sebut objek. Fungsi dari simbol
ini adalah untuk menandakan objek-objek yang ada di dalam diagram.
Simbol ini bentuk kotak dan berisi nama objek dan nama kelas objek dan di pisahkan tanda titik dua (":"), namun dalam beberapa buku juga ada yang hanya menggunakan kelasnya saja. Jadi dalam penggunaan simbol ini tergantung pada patokan buku mana yang ingin anda gunakan. |
5
|
|
Disamping ini bernama Lifetime atau dalam bahasa
indonesia nya sering disebut dengan waktu hidup. Berbentuk kotak persegi
panjang dengan arah ke bawah dan terletak di garis hidup pada suatu objek
atau kelas tanpa menyertakan text (tanpa nama).
Panjang pendek nya tergantung banyaknya aktifitas yang terhubung di waktu hidup (lifetime). Dalam beberapa buku, penggunaan simbol ini tidak memiliki perbedaan. |
6
|
|
Simbol disamping bernama call atau dalam bahasa
indonesia nya sering di sebut pemanggil. Simbol ini di gunakan
untuk memanggil class sesuai dengan type keterangan yang ada pada simbol ini.
Dalam penulisannya memiliki nomor urut sesuai dengan alur kerja suatu
aktivitas dengan tanda pemisah titik dua (":").
Misalnya dalam sequence tombol memiliki perintah untuk membuka data form barang di menu utama. Maka dalam penggambaran kita letakan digaris hidup nya menu utama kemudian diatas simbol call ini kita tambahkan text 1:FormData:Barang. |
7
|
|
Simbol disamping bernama Create yang dalam ucapan
bahasa indonesia sering disebut dengan pembuat/membuat. Fungsi
dari simbol ini adalah untuk membuat suatu objek lain dalam sequence.
Misalnya kita ingin menghubungkan ke data base untuk memanggil data barang. Maka kita membutuhkan tanda ini sebagai pembuat koneksi ke basis data dengan tujuan tabel data barang. Simbol ini mirip dengan call namun terjadi sedikit perbedaan untuk penambahan text yang ada diatasnya. Dalam create ini harus menyertakan tanda "<<"dan ">>" dan menambahkan kata "create"di tengah tanda, contoh"<<create>>". |
8
|
|
Perhatikan dan bedakan disamping ini dengan ke dua simbol panah diatas.
Yang ini memiliki bentuk seperti anak panah namu pada mata panahnya tidak
berisi (hanya garis kosong).
Untuk penerapannya hampir sama dengan kedua simbol panah diatas yang membedakan hanya terletak pada fungsinya saja yaitu untuk menandakan adanya data yang di bawa kearah mata panah. Jadi silahkan bedakan sendiri pada kasus Anda antara panah pemanggil, pembuat dan pembawa data ini. |
9
|
|
Terakhir ini bernama destroy atau dalam bahasa
indonesianya pemutus. Fungsi dari simbol ini adalah untuk memutuskan arus
atau mematikan garis hidup yang ada pada objek atau kelas.
|