Rabu, 28 Mei 2008

Mengakses Database

Untuk mengakses database dengan Java cukup mudah. API Java yang perlu dipelajari ada dalam paket java.sql. Class-class yang berhubungan dengan mengakses database antara lain Connection, Statement, PreparedStatement dan ResultSet. Teknologi Java untuk mengakses database disebut JDBC. Dengan JDBC kita dapat menciptakan koneksi ke database, mengirimkan perintah-perintah sql dan memproses hasil eksekusi sql.

Hal lain yang dibutuhkan untuk mengakses database adalah JDBC Driver. JDBC Driver berbeda untuk setiap database yang ada. Misalnya JDBC Driver untuk MySQL akan berbeda dengan JDBC Driver untuk SQL Server atau Oracle.

Aplikasi database yang dikembangkan menggunakan teknologi Java tidak akan terikat dengan database yang digunakan. Maksudnya adalah kita dapat bergonta-ganti database engine dari yang satu ke database engine yang lain tanpa harus mengubah source program kita secara signifikan. Yang perlu diganti hanyalah JDBC Driver yang digunakan.

Berikut adalah beberapa contoh program Java sederhana untuk mengakses database MySQL. Sekali lagi untuk mengakses database MySQL dibutuhkan JDBC Driver MySQL. Silahkan download di sini

Membaca Data


/**
* @author Hendro Steven
*/
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.*;
public class DatabaseApp{
public static void main(String args[]){
Connection conn = null;
Statement st = null;
ResultSet result=null;

String sql = "SELECT * FROM t_pegawai";

try{
//load Driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Define the Connection URL
String dbURL = "jdbc:mysql://localhost/db_training";
String dbUser = "";
String dbPass = "";
//Establish The Connection
conn = DriverManager.getConnection(dbURL,dbUser,dbPass);
//Create a statement object
st = conn.createStatement();
//Execute a query
result = st.executeQuery(sql);
//Process the results
System.out.println("Database Result :");
while(result.next()){
String kode = result.getString(1);
String nama = result.getString(2);
String alamat = result.getString(3);
String gaji = result.getString(4);
System.out.println("KODE : "+ kode);
System.out.println("NAMA : "+ nama);
System.out.println("ALAMAT : "+ alamat);
System.out.println("GAJI : "+ gaji);
System.out.println();
}
//close the connection
st.close();
conn.close();
}catch (InstantiationException e) {
System.out.println("InstantiationException....");
System.out.println(e.getMessage());
}catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException....");
System.out.println(e.getMessage());
}catch (IllegalAccessException e) {
System.out.println("IllegalAccessException....");
System.out.println(e.getMessage());
}catch (SQLException e) {
System.out.println("SQLException....");
System.out.println(e.getMessage());
}
}
}

Menambah Data

/**
* @author Hendro Steven SalatigaCamp
*/
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.io.*;

public class AddDataApp{
public static void main(String args[]){
Connection conn = null;
Statement st = null;
ResultSet result=null;

String sql = "";
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

try{
//load Driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Define the Connection URL
String dbURL = "jdbc:mysql://localhost/db_training";
String dbUser = "";
String dbPass = "";
//Establish The Connection
conn = DriverManager.getConnection(dbURL,dbUser,dbPass);
//Create a statement object
st = conn.createStatement();

//ambil input dari console
System.out.println("Input Data");
System.out.print("KODE : "); String kode = input.readLine();
System.out.print("NAMA : "); String nama = input.readLine();
System.out.print("ALAMAT : "); String alamat = input.readLine();
System.out.print("GAJI :"); double gaji = Double.parseDouble(input.readLine());
sql = "INSERT INTO t_pegawai VALUES('"+kode+"','"+nama+"','"+alamat+"',"+gaji+")";

//Execute a query
st.executeUpdate(sql);
System.out.println("Completed...");

//close the connection
st.close();
conn.close();
}catch (InstantiationException e) {
System.out.println("InstantiationException....");
System.out.println(e.getMessage());
}catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException....");
System.out.println(e.getMessage());
}catch (IllegalAccessException e) {
System.out.println("IllegalAccessException....");
System.out.println(e.getMessage());
}catch (SQLException e) {
System.out.println("SQLException....");
System.out.println(e.getMessage());
}catch (IOException e){
System.out.println("IOException....");
System.out.println(e.getMessage());
}
}
}

Menghapus Data

/**
* @author Hendro Steven SalatigaCamp
*/
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.io.*;

public class DelDataApp{
public static void main(String args[]){
Connection conn = null;
Statement st = null;
ResultSet result=null;

String sql = "";
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

try{
//load Driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Define the Connection URL
String dbURL = "jdbc:mysql://localhost/db_training";
String dbUser = "";
String dbPass = "";
//Establish The Connection
conn = DriverManager.getConnection(dbURL,dbUser,dbPass);
//Create a statement object
st = conn.createStatement();

//ambil input dari console
System.out.println("Input Kode Yang akan dihapus :");
System.out.print("KODE : "); String kode = input.readLine();
sql = "DELETE FROM t_pegawai WHERE kode='"+kode+"'";

//Execute a query
st.executeUpdate(sql);
System.out.println("Completed...");

//close the connection
st.close();
conn.close();
}catch (InstantiationException e) {
System.out.println("InstantiationException....");
System.out.println(e.getMessage());
}catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException....");
System.out.println(e.getMessage());
}catch (IllegalAccessException e) {
System.out.println("IllegalAccessException....");
System.out.println(e.getMessage());
}catch (SQLException e) {
System.out.println("SQLException....");
System.out.println(e.getMessage());
}catch (IOException e){
System.out.println("IOException....");
System.out.println(e.getMessage());
}
}
}

Sabtu, 24 Mei 2008

Membuat Window dengan Netbeans

Ini ada video tutorial bagaimana menggunakan Netbeans untuk membuat GUI. Video tutorial ini udah saya posting di kumpulan artikel di netbeans.org. Video tutorialnya dibagi beberapa file, mudah-mudahkan bermanfaat bagi pemula.

Lihat semua

Kotak Dialog

Kotak dialog adalah komponen dalam Swing yang digunakan untuk menampilkan pesan. Misalnya pesan kesalahan, input box atau konfirmasi biasa. Untuk contoh berikut ini kita akan menampilkan pesan saat kita menekan tombol Tampil. Pesan yang di tampilkan sesuai dengan inputan yang kita berikan pada txtPesan.


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SimpleForm {
public static void main(String[] args){
JFrame myFrame = new JFrame("Form Sederhana");
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
layout.setVgap(10);
layout.setHgap(10);

final JTextField txtPesan = new JTextField(20);
JButton cmdTampil = new JButton("Tampil");
cmdTampil.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
JOptionPane.showMessageDialog(null,txtPesan.getText());
}
});
JButton cmdClose = new JButton("Keluar");
cmdClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Keluar");
System.exit(0);
}
});

myFrame.getContentPane().setLayout(layout);
myFrame.getContentPane().add(txtPesan);
myFrame.getContentPane().add(cmdTampil);
myFrame.getContentPane().add(cmdClose);

myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.pack();
myFrame.show();
}
}

Menambahkan Event pada Tombol

Untuk menambahkan event pada tombol perhatikan contoh berikut:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SimpleForm {
public static void main(String[] args){
JFrame myFrame = new JFrame("Form Sederhana");
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
layout.setVgap(10);
layout.setHgap(10);

JTextField txtPesan = new JTextField(20);
JButton cmdTampil = new JButton("Tampil");
JButton cmdClose = new JButton("Keluar");
cmdClose.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
System.out.println("Keluar");
System.exit(0);
}
});
myFrame.getContentPane().setLayout(layout);
myFrame.getContentPane().add(txtPesan);
myFrame.getContentPane().add(cmdOK);
myFrame.getContentPane().add(cmdClose);

myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.pack();
myFrame.show();
}
}