1. Pengantar koneksi database
Langkah koneksi database MySQL menggunakan Java
1. sebelum melakukan koneksi
tahap ini adalah tahap yang harus di lakukan sebelum kita mulai menuliskan kode untuk koneksi database.
Sebelum membuat program / aplikasi yang menggunakan koneksi database, terlebih dahulu kita lakukan hal-hal berikut :
1. siapkan driver untuk database yang kita gunakan
driver ini biasanya di sediakan oleh para pengembang database,
1. setelah driver nya kita dapatkan, maka langkah selanjutnya adalah setting classpath.
2. Melakukan koneksi
Untuk melakukan koneksi ke database langkah-langkahnya yaitu :
=> load driver database
Untuk melakukan hal ini gunakan syntax berikut :
Class.forName(“com.mysql.jdbc.Driver”);// sesuaikan dengan driver databasenya.
=> koneksi dan panggil URL databasenya.
Setelah driver databasenya di tentukan, panggil URL databasenya :
Connection con=DriverManager.getConnection(url, user, password);
url : URL database
user : username database
password : password database
untuk mysql syntaknya dapat di ubah menjadi sebagai berikut
=> buat statement
Pada tahap ini buat query yang nantinya akan di eksekusi oleh database :
Stmt = conn.createStatement(); //step 4
=> eksekusi perintah ( biasanya berupa statement SQL)
Rs = stmt.executeQuery(“SELECT * FROM table02”);
=> proses hasil
Pada tahap ini hasil yang di dapat kita proses lebih lanjut, dapat langsung di tampilkan dengan system.out.println(); atau bias d tampilkan dengan menggunakan GRID untuk GUI interface
=> tutup koneksi
Setelah di dapatkan hasil yang di inginkan, tutup koneksinya :
Stmt.close();
Conn.close();
Contoh lengkap programnya :
import java.sql.*;
public class koneksiDB {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(“org.gjt.mm.mysql.Driver”); // Step 1
} catch (ClassNotFoundException cnfe) {
System.err.println(cnfe);
} catch (Exception E) {
E.printStackTrace();
} // end catch
try {
conn = DriverManager.getConnection(“jdbc:mysql://localhost/coba”,”root”,”black”);
stmt = conn.createStatement(); // step 4
rs = stmt.executeQuery(“SELECT * FROM tabel02″);
while (rs.next()) { // step 6
System.out.print(rs.getString(“Nomer”) + ” “);
System.out.print(rs.getString(“Judul”) + ” “);
System.out.print(rs.getString(“Pengarang”) + ” “);
System.out.print(rs.getString(“Penerbit”) + ” “);
System.out.print(rs.getString(“harga”) + ” “);
System.out.println(“Oke”);
} // while
stmt.close();
conn.close();
} catch(SQLException sqle) {
System.err.println(“SQLException : ” + sqle.getMessage());
} // end cacth
}
}
1. 2. Objek Connection
JDBC
Untuk melakukan koneksi ke suatu sumber data, diperlukan database driver yang akan menjadi jembatan antara Aplikasi dengan Database. Database driver ini bersifat spesifik untuk setiap sumber data. Misalnya, Database Driver MySQL hanya bisa digunakan untuk melakukan koneksi ke database MySQL, begitu juga dengan Database Driver PostgreSQL hanya untuk PostgreSQL.
Komponen utama JDBC
Connection adalah komponen yang menyimpan koneksi ke database.
Statement adalah komponen yang menangani perintah SQL ke database.
ResultSet adalah komponen yang menyimpan data hasil perintah ke database.
1. Memanggil data dan record
Cara Pertama
Menampilkan data dengan menggunakan nilai syarat yang dipanggil pada JTextField, maka kita lihat Query untuk menampilkannya dengan format
select field from table where field_syarat="nilai_field _syarat";
//jika semua field dalam table akan ditampilkan maka field ganti dengan tanda bintang (*)
contoh :
select * from identitas where nobp="1200134";
//tampilkan nilai semua field pada table "identitas" dimana nilai "nobp" adalah 1200134, maka record yang ditampilkan nantinya hanya record dengan nobp 1200134 saja.
ok, kita lanjutka, disini kita akan menampilkan data berdasarkan "nobp" maka berikan Event pada JTextField No BP yaitu ActionPerformed, kemudian tambahkan coding berikut :
try
{
sql="select * from identitas where nobp='"+TxtNobp.getText()+"'";
st=con.createStatement();
rs=st.executeQuery(sql);
while(rs.next())
{
TxtNama.setText(rs.getString("Nama_MHS"));
TxtJk.setText(rs.getString("J_Kelamin"));
TxtAlamat.setText(rs.getString("Alamat"));
TxtJurusan.setText(rs.getString("Jurusan"));
TxtNohp.setText(rs.getString("NoHp"));
}
}catch(Exception e)
{
JOptionPane.showMessageDialog(null,"GAGAL");
}
seperti gambar berikut :
Ket : Nilai field nobp diambil dari JTextField TxtNobp dengan perintah getText(), sedangkan untuk menampilkan nilai yang lain TextField diambil dari masing-masing field dengan perintah getString("Nama_Field") untuk ditampilkan pada JTextField dengan perintah setText(parameter).
Hasil
Isi nilai pada JTextField NoBP, kemudian tekan ENTER,
jika ada nilai nobp yang diinputkan dalam database maka akan tampil nilai field yang lain sesuai nilai nobp tersebut, jika tidak ada maka nilai field yang lain tidak akan tampil.
1. Membuat report
Aplikasi laporan yang mendukung java yang lebih bagus yaitu iReport atau jasperReport yang sangat banyak digunakan untuk menampilkan laporan. pada tutorial kali ini penulis cuma membahas cara membuat dan menampilkan laporan saja, namun bukan mendesain laporan, untuk membuat laporan anda hanya memilih new dengan klik kanan -> pilih other -> pilih report -> pilih report wizard dengan begitu anda akan sangat terbantu dalam mendesain laporan seperti gambar dibawah ini.
pertama tama yang harus dilakukan adalah membuat koneksi antara laporan dengan mysql untuk databasenya sendiri akan penulis jelaskan dibawah, pada tabbar pilih ikon yang bulat tersusun itu atau ikon database kemudian pilih database jdbc connection klik next -> isikan field koneksinya -> klik save.
Kemudian buatlah laporan dengan penjelasan seperti diatas yaitu klik kanan -> pilih new -> pilih report wizard atau other cari pada report -> klik report wizard.
Klik design query kalau muncul password isikan password mysql dan drag drop tabel yang ada pada gambar dibawah ini atau juga bisa pada gambar diatas diketik menual syntax sql mysqlnya untuk menampilkan data misalkan menggunakan select * from tabel.
Yang diatas anda pilih dan klik next saja. selanjutnya desainnya seperti dibawah ini. untuk desain anda lakukan sendiri terserah anda pada gambar dibawah ini adalah laporan yang telah saya desain.
Setelah laporan berhasil didesain maka yang anda perlukan adalah database, sebenarnya database dari awal wajib dibuat kalau tidak dibuat maka yang telah dipraktekkan diatas tidak berjalan.
1. CREATE DATABASE IF NOT EXISTS `basisdata` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
2. USE `basisdata`;
3.
4. CREATE TABLE IF NOT EXISTS `biodata` (
5. `kode` varchar(5) NOT NULL,
6. `nama` varchar(45) NOT NULL,
7. `kelamin` varchar(20) NOT NULL,
8. `alamat` varchar(100) NOT NULL,
9. `ortu` varchar(45) NOT NULL
10. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
11.
12. INSERT INTO `biodata` (`kode`, `nama`, `kelamin`, `alamat`, `ortu`) VALUES
13. ('11111', 'Ghazali', 'Laki-laki', 'Sigli', 'Zulkifli'),
14. ('11112', 'Julinda', 'Perempuan', 'Ulim', 'Yusuf'),
15. ('11113', 'Monicha', 'Perempuan', 'Bambi', 'Rahman'),
16. ('11113', 'Andrian', 'Laki-laki', 'Bambi', 'Ramli'),
17. ('11115', 'Andrian', 'Laki-laki', 'Krung', 'Ramli'),
18. ('12345', 'Reza', 'Laki-laki', 'Desa', 'Kure');
Setelah itu desainlah formnya seperti dibawah ini dan berikan nama sesuka hati anda disinilah nantinya waktu yang dijalankan tampil formnya dan klik cetak langsung tampil laporannya.
Setelah itu klik kanan pada jbutton yang telah dibuat dan pilih event -> pilih action -> klik actionperformed, ini berguna nantinya untuk menambah data dan menampilkan laporan, untuk sintaxnya seperti dibawah ini
class koneksi
2. Statement stat;
3.
4. public void koneksi(){
5. try {
6. Class.forName("com.mysql.jdbc.Driver");
7. System.out.println("Berhasil Koneksi");
8. } catch (ClassNotFoundException ex) {
9. System.out.println("Gagal Koneksi "+ex);
10. }
11. String url="jdbc:mysql://localhost:3306/basisdata";
12. try {
13. konek = DriverManager.getConnection(url, "root", "kodokijo");
14. stat = konek.createStatement();
15. System.out.println("Ada Database");
16. } catch (SQLException se) {
17. System.out.println("Tidak ada database "+se);
18. }
button simpan
1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
2. // TODO add your handling code here:
3. String sql = "insert into biodata values('"+textkode.getText()+"','"+textnama.getText()+"','"+textkelamin.getText()+"','"+textalamat.getText()+"','"+textfamily.getText()+"')";
4. try {
5. stat.executeUpdate(sql);
6. textkode.setText("");
7. textnama.setText("");
8. textkelamin.setText("");
9. textalamat.setText("");
10. textfamily.setText("");
11. textkode.requestFocus();
12. JOptionPane.showMessageDialog(null, "Berhasil tambah data");
13. } catch (SQLException ez) {
14. JOptionPane.showMessageDialog(null, "Gagal total "+ez);
15. }
button cetak
1. private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
2. // TODO add your handling code here:
3. String sql = "SELECT biodata.`kode` AS biodata_kode, biodata.`nama` AS biodata_nama, biodata.`kelamin` AS biodata_kelamin, biodata.`alamat` AS biodata_alamat, biodata.`ortu` AS biodata_ortu FROM `biodata` biodata";
4. try {
5. ResultSet rs = stat.executeQuery(sql);
6. JasperPrint jasperPrint;
7. JRResultSetDataSource jrRS = new JRResultSetDataSource (rs);
8. JasperReport jasperReport = JasperCompileManager.compileReport("./src/laporan.jrxml");
9. jasperPrint = JasperFillManager.fillReport(jasperReport, null, jrRS);
10. JRViewer aViewer = new JRViewer(jasperPrint);
11. JDialog viewer = new JDialog();
12. viewer.setTitle(".: Jasper Report :.");
13. viewer.setAlwaysOnTop(true);
14. viewer.getContentPane().add(aViewer);
15. Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
16. viewer.setBounds(0,0,screenSize.width, screenSize.height);
17. viewer.setVisible(true);
18.
19. stat.close();
20. konek.close();
21. } catch (Exception e) {
22. JOptionPane.showMessageDialog(null, "Laporan gak ada "+e);
23. }
Kira kira hasil dari program diatas seperti pada gambar yang ada dibawah ini, semoga dapat terbantu dengan adanya tutorial diatas.