SQLite Lanjut 3
- Forums:
= Kasus =
Pada sebuah gudang persediaan barang suatu toko, dibuat sebuah program yang akan menyimpan data mengenai barang, kuantitas barang dll. Program tersebut harus dapat menangani transaksi sebagai berikut :
|
Pertama-tama mari kita perluas kasus di atas menjadi sebuah algoritma. Langkah pertama adalah membuat sebuah class dengan nama JDBC_Lanjut (nama boleh berbeda).
class JDBC_Lanjut
{
}
Selanjutnya kita deklarasikan property Connection, Statement, dan ResultSet. Tidak lupa kita tambahkan import java.sql.*;. penjelasan
import java.sql.*;
class JDBC_Lanjut
{ Connection koneksi;
Statement stm;
ResultSet rs;
}
Lalu kita buat method setKoneksiuntuk membuat koneksi ke database.
public void setKoneksi(String dbDriver, String strDB)
{ try
{ Class.forName(dbDriver);
this.koneksi = DriverManager.getConnection(strDB);
this.stm = koneksi.createStatement();
} catch(Exception e)
{ System.out.println("error : "+e.getMessage());
}
}
Lalu kita buat method execSQL untuk menangani eksekusi SQL seperti : membuat table, input data barang, ubah data barang, dan hapus data barang.
public void execSQL(String strSQL)
{ try
{ stm.executeUpdate(strSQL);
} catch(Exception e)
{ System.out.println("error : "+e.getMessage());
}
}
Tahap terakhir adalah membuat method getData untuk menangani eksekusi SQL SELECT yang bertujuan untuk menampilkan data dari database ke layar output.
public void getData(String strSQL)
{ try
{ this.rs = stm.executeQuery(strSQL);
System.out.println("kode\t nama\t\tstok\tunit");
System.out.println("------------------------------------------");
while(rs.next())
System.out.println(rs.getString("kode")+"\t"+rs.getString("nama")+
"\t"+rs.getInt("stok")+"\t"+rs.getString("unit"));
} catch(Exception e)
{ System.out.println("error : "+e.getMessage());
} finally
{ try
{ rs.close();
} catch(Exception e)
{ System.out.println("error : "+e.getMessage());
}
}
}
Lalu bagaimana kita bisa menguji program yang telah kita buat tadi ?
Maka kita tambahkan method main() yang berisi contoh statement untuk menjalankan program tersebut.
public static void main(String[] args)
{ JDBC_Lanjut x = new JDBC_Lanjut();
String nama_driver="org.sqlite.JDBC",
path_db="JDBC:sqlite:latJDBC.db",
ambil_data="select * from barang";
x.setKoneksi(nama_driver, path_db);
x.execSQL("drop table if exists barang;");
x.execSQL("create table barang(kode char(9), nama char(20), stok integer,"+
"unit char(9), primary key(kode));");
x.execSQL("Insert into barang(kode, nama, stok, unit)"+
"values('B001','Buku Tulis',100,'buah');");
x.execSQL("insert into barang values('B002','Pulpen Hitam',78,'buah');");
x.execSQL("insert into barang(kode,nama) values('B003','Spidol Pink');");
x.execSQL("insert into barang(kode, nama, unit) "+
"values('B004','Penghapus','buah');");
System.out.println("Data awal");
x.getData(ambil_data);
x.execSQL("update barang set stok=33 where kode='B004';");
System.out.println("\n\nData setelah diubah (update)");
x.getData(ambil_data);
x.execSQL("update barang set unit='buah', stok=147 where kode='B003';");
System.out.println("\n\nData setelah diubah (update)");
x.getData(ambil_data);
x.execSQL("delete from barang where kode='B004';");
System.out.println("\n\nData setelah diubah (update)");
x.getData(ambil_data);
}
Silahkan anda jalankan program di atas. Modifikasilah jika anda inginkan. Untuk penjelasan lebih lanjut silahkan mengajukan pertanyaan.
Klik di sini untuk lihat source code lengkapnya.
