Postingan lainnya
jTable Java
selamat malam agan-agan, perkenalkan saya arif, saat ini saya lagi belajar menggunakan java.
yang jadi permasalahan saya adalah bagaimana caranya supaya jTable pada Java hanya menampilkan satu baris data saja ketika data yang sama terinput dan disaat yang bersamaan jumlah barang dan harga barang ikut bertambah
contoh gambar sudah saya sertakan, data yang sama sudah terinput tapi jTable terus menampilkan data tersebut pada baris berikutnya.
mohon pencerahannya agan-agan.
6 Jawaban:
logikanya sih cari dulu barang yang akan diinput sudah ada di jtable atau tidak, kalau sudah ada cari index ke berapa, kalau sudah ketemu indexnya update jumlah barang di jtable dan update nilai total. btw ketika data masuk ke jtable, apakah data juga masuk ke database?
iya gan, data yang masuk di jTable semua dipanggil dari database, ada contoh coding nggak gan biar ane lebih paham cara melogikakan ke dalam program
coba codingan agan taruh dimari, waktu insert barang ke jtable
stmt = con.createStatement();
sql = "SELECT * FROM tabel_barang WHERE id_barang = '"+new String(readBuffer)+"'";
rs = stmt.executeQuery(sql);
while(rs.next())
{
obj[0] = rs.getString("id_barang");
obj[1] = rs.getString("nama_barang");
int tampung_id_barang = Integer.parseInt (rs.getString("id_barang"));
int tampung_jumlah_barang = Integer.parseInt (rs.getString("jumlah_barang"));
int tampung_harga_barang = Integer.parseInt (rs.getString("harga_barang"));
stmt1 = con.createStatement();
sql1 = "INSERT INTO tabel_pembelian (id_pembelian, id_barang_pembelian, total_jumlah_barang, subtotal) VALUES (NULL, '"+tampung_id_barang+"', '"+tampung_jumlah_barang+"', '"+tampung_harga_barang+"')";
stmt1.executeUpdate(sql1);
}
stmt2 = con.createStatement();
sql2 = "SELECT COUNT(total_jumlah_barang) FROM tabel_pembelian WHERE id_barang_pembelian='"+new String(readBuffer)+"'";
rs1 = stmt2.executeQuery(sql2);
while(rs1.next())
{
obj[2] = rs1.getString(1);
}
stmt3 = con.createStatement();
sql3 = "SELECT SUM(total_jumlah_barang*subtotal) FROM tabel_pembelian WHERE id_barang_pembelian='"+new String(readBuffer)+"'";
rs2 = stmt3.executeQuery(sql3);
while(rs2.next())
{
obj[3] = rs2.getString(1);
}
ini gan contoh coding yang ane punya,mohon pencerahannya gan @dianarifr
Jawaban Terpilih
kurang lebih seperti ini logikanya
stmt = con.createStatement();
sql = "SELECT * FROM tabel_barang WHERE id_barang = '"+new String(readBuffer)+"'";
rs = stmt.executeQuery(sql);
while(rs.next())
{
obj[0] = rs.getString("id_barang");
obj[1] = rs.getString("nama_barang");
int tampung_id_barang = Integer.parseInt (rs.getString("id_barang"));
int tampung_jumlah_barang = Integer.parseInt (rs.getString("jumlah_barang"));
int tampung_harga_barang = Integer.parseInt (rs.getString("harga_barang"));
stmt1 = con.createStatement();
sql0 = "select count(id_barang_pembelian) as ada where id_barang_pembelian = '"+tampung_id_barang+"' ";
rs0 = stmt1.executeQuery(sql0);
if(rs0.getString(1) > 0) { //barang sudah ada, maka update
sql1 = "UPDATE tabel_pembelian SET total_jumlah_barang += '"+tampung_jumlah_barang+"', subtotal += '"+tampung_harga_barang+"' WHERE id_barang_pembelian = '"+tampung_id_barang+"')";
stmt1.executeUpdate(sql1);
}else{ //barang blm ada, maka insert
sql1 = "INSERT INTO tabel_pembelian (id_pembelian, id_barang_pembelian, total_jumlah_barang, subtotal) VALUES (NULL, '"+tampung_id_barang+"', '"+tampung_jumlah_barang+"', '"+tampung_harga_barang+"')";
stmt1.executeUpdate(sql1);
}
}
stmt2 = con.createStatement();
sql2 = "SELECT COUNT(total_jumlah_barang) FROM tabel_pembelian WHERE id_barang_pembelian='"+new String(readBuffer)+"'";
rs1 = stmt2.executeQuery(sql2);
while(rs1.next())
{
obj[2] = rs1.getString(1);
}
stmt3 = con.createStatement();
sql3 = "SELECT SUM(total_jumlah_barang*subtotal) FROM tabel_pembelian WHERE id_barang_pembelian='"+new String(readBuffer)+"'";
rs2 = stmt3.executeQuery(sql3);
while(rs2.next())
{
obj[3] = rs2.getString(1);
}
terima kasih banyak responnya gan, sangat membantu