Professional Documents
Culture Documents
Công nghệ Java
Công nghệ Java
Công nghệ Java
1. ConDatabase
public class DBConnection {
public Connection getConnect() {
String url = "jdbc:mysql://localhost:3306/qlsvcntt";
String user = "root";
String pass = "";
Connection ketnoi = null;
try {
ketnoi = DriverManager.getConnection(url, user, pass);
System.out.println("Kết nối thành công!!");
} catch (SQLException e) {
System.out.println("Lỗi!!!" + e.toString());
}
return ketnoi;
}
public ResultSet getData(String sql) {
ResultSet kq = null;
try {
Statement st = getConnect().createStatement();//tạo 1 statment
kq = st.executeQuery(sql);
} catch (SQLException e) {
System.out.println("Lỗi!! " + e.toString());
}
return kq;
}
public ResultSet getTTSV() {
String sql = "select * from tt_svcntt";
return getData(sql);
}
public void loadTable(ResultSet kq, JTable tb) {
int n = tb.getColumnCount();
DefaultTableModel model = (DefaultTableModel) tb.getModel();
//Đưa về bảng rỗng
model.setRowCount(0);
try {
while (kq.next()) {
Object[] dong = {
kq.getString("MaSV"),
kq.getString("TenSV"),
kq.getString("NamSinh"),
kq.getFloat("DiemCTDL"),
kq.getFloat("DiemCSDL"),
kq.getFloat("DiemMMT"),
String.format("%.2f", (kq.getFloat("DiemCTDL") +
kq.getFloat("DiemCSDL") + kq.getFloat("DiemMMT")) / 3)
};
model.addRow(dong); }
} catch (SQLException e) {
System.out.println("Lỗi: " + e.toString());}
}
public ResultSet Search(String tentk) {
String sql = "select * from sv_cntt where TenSV like N'%" + tentk + "%'";
return getData(sql);
}
//dùng cho các câu lệnh Insert, delete, update
public void updateData(String sql) {
try {
Statement st = getConnect().createStatement();
st.executeUpdate(sql);
} catch (SQLException e) {
System.out.println("Lỗi " + e.toString());}
}
public void xoa(String masv) {
String sql = "delete from sv_cntt where MaSV = '" + masv + "'";
updateData(sql);
}
public void them(String ma, String ten, String namsinh, float ctdl, float csdl, float
mmt) {
String sql = "INSERT INTO sv_cntt (MaSV, TenSV, NamSinh, DiemCTDL,
DiemCSDL, DiemMMT) VALUES ('"+ma+"', '"+ten+"', '"+namsinh+"', "+ctdl+",
"+csdl+", "+mmt+")";
updateData(sql);
}
public void sua(String ma, String ten, String namsinh, float ctdl, float csdl, float mmt)
{
String sql = "update sv_cntt set TenSV = '" + ten + "', NamSinh = '" + namsinh +
"',DiemCTDL = " + ctdl + ",DiemCSDL = " + csdl + ",DiemMMT = " + mmt + " where
MaSV = '" + ma + "'";
updateData(sql);
}
public boolean kiemtrama(String ma) {
String sql = "SELECT COUNT(*) FROM sv_cntt WHERE MaSV = ?";
try (PreparedStatement ps = getConnect().prepareStatement(sql)) {
ps.setString(1, ma);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1) > 0; // If count > 0, maNV exists}
} catch (SQLException e) {
System.out.println("Lỗi " + e.toString());
}
return false; } }
2. Form giao diện
public class frqlsvCNTT extends javax.swing.JFrame {
DBConnection db = new DBConnection();
public frqlsvCNTT() {
initComponents();
ResultSet kq = db.getTTSV();
if (kq != null) {
db.loadTable(kq, table);
}
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());}
private void btThemActionPerformed(java.awt.event.ActionEvent evt) {
String masv = ma.getText().trim();
String tensv = ten.getText().trim();
String namsinh = nsinh.getText().trim();
float dctdl = Float.parseFloat(ctdl.getText().trim());
float dcsdl = Float.parseFloat(csdl.getText().trim());
float dmmt = Float.parseFloat(mmt.getText().trim());
if (db.kiemtrama(masv)) {
JOptionPane.showMessageDialog(this, "Mã sinh viên đã tồn tại. Vui lòng nhập mã
khác.");
ma.requestFocus(); // Đặt con trỏ vào ô txtma
return;
}
db.them(masv, tensv, namsinh, dctdl, dcsdl, dmmt);
ResultSet kq = db.getTTSV();
if (kq != null) {
db.loadTable(kq, table);
}
JOptionPane.showMessageDialog(this, "Thêm thành công!!!");
reset();}
public void reset() {
ma.setText("");
ten.setText("");
nsinh.setText("");
ctdl.setText("");
csdl.setText("");
mmt.setText("");
table.clearSelection();
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());}
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
int row = table.getSelectedRow();
if (row < 0) {
return;
}
ma.setText(table.getValueAt(row, 0).toString());
ten.setText(table.getValueAt(row, 1).toString());
nsinh.setText(table.getValueAt(row, 2).toString());
ctdl.setText(table.getValueAt(row, 3).toString());
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());
}
private void btHuyActionPerformed(java.awt.event.ActionEvent evt) {
reset();}
private void btThoatActionPerformed(java.awt.event.ActionEvent evt) {
int op = JOptionPane.showConfirmDialog(this, "Bạn thực sự muốn thoát không? Y/N",
"Thoát", JOptionPane.YES_NO_OPTION);
if (op == JOptionPane.YES_OPTION) {
System.exit(0); }}
private void btTruocActionPerformed(java.awt.event.ActionEvent evt) {
int selectedRow = table.getSelectedRow();
if (selectedRow > 0) {
selectedRow--;
table.getSelectionModel().setSelectionInterval(selectedRow, selectedRow);
}
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());}
private void btCuoiActionPerformed(java.awt.event.ActionEvent evt) {
int rowCount = table.getRowCount();
if (rowCount > 0) {
table.getSelectionModel().setSelectionInterval(rowCount - 1, rowCount - 1);
}
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());
}
private void formWindowOpened(java.awt.event.WindowEvent evt) {
table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
loadtable();}});
}
private void btDauActionPerformed(java.awt.event.ActionEvent evt) {
if (table.getRowCount() > 0) {
table.getSelectionModel().setSelectionInterval(0, 0);
}
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());
}
private void btSauActionPerformed(java.awt.event.ActionEvent evt) {
int selectedRow = table.getSelectedRow();
int rowCount = table.getRowCount();
if (selectedRow < rowCount - 1) {
selectedRow++;
table.getSelectionModel().setSelectionInterval(selectedRow, selectedRow);
}
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());
}
private void btXoaActionPerformed(java.awt.event.ActionEvent evt) {
int sohangchon = table.getSelectedRowCount();
if (sohangchon == 0) {
JOptionPane.showMessageDialog(this, "Chưa chọn hàng cần xóa!!");
} else {
int a = JOptionPane.showConfirmDialog(this, "Có thực sự muốn xóa không?", "Chú
ý", JOptionPane.YES_NO_OPTION);
if (a == JOptionPane.YES_OPTION) {
//Thực hiện xóa 1 bản ghi. Thay đổi thuộc tính SelectionModel: Single
int cshangxoa = table.getSelectedRow();
String mahvcanxoa = table.getValueAt(cshangxoa, 0).toString();
//Gọi hàm xóa csdl
db.xoa(mahvcanxoa); // sau xóa thì phải load lại table
//load lại table
ResultSet kq = db.getTTSV();
if (kq != null) {
db.loadTable(kq, table);
}
reset();
JOptionPane.showMessageDialog(this, "Xóa thành công!!!"); }} }
private void btSuaActionPerformed(java.awt.event.ActionEvent evt) {
int sohangchon = table.getSelectedRowCount();
if (sohangchon == 0) {
JOptionPane.showMessageDialog(this, "Chưa chọn hàng cần sửa!!");
} else {
String masv = ma.getText().trim();
String tensv = ten.getText().trim();
String namsinh = nsinh.getText().trim();
float dctdl = Float.parseFloat(ctdl.getText().trim());
float dcsdl = Float.parseFloat(csdl.getText().trim());
float dmmt = Float.parseFloat(mmt.getText().trim());
db.sua(masv, tensv, namsinh, dctdl, dcsdl, dmmt);
ResultSet kq = db.getTTSV();
if (kq != null) {
db.loadTable(kq, table);
}
JOptionPane.showMessageDialog(this, "Sửa thành công!!!");
reset();}}
private void btTimKiemActionPerformed(java.awt.event.ActionEvent evt) {
String tentk = ten.getText().trim();
ResultSet kq = db.Search(tentk);
if (kq != null) {
db.loadTable(kq, table); } }
public void loadtable() {
int row = table.getSelectedRow();
if (row < 0) {
return;
}
ma.setText(table.getValueAt(row, 0).toString());
ten.setText(table.getValueAt(row, 1).toString());
nsinh.setText(table.getValueAt(row, 2).toString());
ctdl.setText(table.getValueAt(row, 3).toString());
csdl.setText(table.getValueAt(row, 4).toString());
mmt.setText(table.getValueAt(row, 5).toString());
txt.setText((table.getSelectedRow() + 1) + "/" + table.getRowCount());
}
private void bttktheomaMouseClicked(java.awt.event.MouseEvent evt) {
String maTimKiem = tftktheoma.getText();
if (maTimKiem.isEmpty())
{
JOptionPane.showMessageDialog(this, "Vui lòng nhập mã sản phẩm cần tìm kiếm.", "Thông
báo", JOptionPane.INFORMATION_MESSAGE);
return;
}
TestConnect pt = null;
ResultSet rs = null;
try {
pt = new TestConnect();
rs = pt.timkiemtheoma(Integer.parseInt(maTimKiem));
DefaultTableModel model = (DefaultTableModel) tbSp.getModel();
model.setRowCount(0);
while (rs.next()) {
model.addRow(new Object[]{
rs.getString("ID"),
rs.getString("Name"),
rs.getString("Number")
});
}
if (model.getRowCount() == 0) {
JOptionPane.showMessageDialog(this, "Không tìm thấy sản phẩm với mã " +
maTimKiem, "Thông báo", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Vui lòng nhập mã sản phẩm là một số
nguyên.", "Lỗi", JOptionPane.ERROR_MESSAGE);
} catch (ClassNotFoundException | SQLException ex) {
java.util.logging.Logger.getLogger(QLSP.class.getName()).log(java.util.logging.Level.SEVE
RE, null, ex);
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException ex)
{java.util.logging.Logger.getLogger(QLSP.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
}
}
if (pt != null) {
try {
pt.Close();
} catch (SQLException ex)
{java.util.logging.Logger.getLogger(QLSP.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
}
}
}
}
private void bttktheoslMouseClicked(java.awt.event.MouseEvent evt) {
String slTimKiem = tftimkiemtheosl.getText();
if (slTimKiem.isEmpty())
{
JOptionPane.showMessageDialog(this, "Vui lòng nhập số lượng sản phẩm cần tìm
kiếm.", "Thông báo", JOptionPane.INFORMATION_MESSAGE);
return;
}
TestConnect pt = null;
ResultSet rs = null;
try {
pt = new TestConnect();
rs = pt.timkiemtheosl(Integer.parseInt(slTimKiem));
DefaultTableModel model = (DefaultTableModel) tbSp.getModel();
model.setRowCount(0);
while (rs.next())
{
model.addRow(new Object[]{
rs.getString("ID"),
rs.getString("Name"),
rs.getString("Number")
});
}
if (model.getRowCount() == 0) {
JOptionPane.showMessageDialog(this, "Không tìm thấy sản phẩm với số lượng " +
slTimKiem, "Thông báo", JOptionPane.INFORMATION_MESSAGE);
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Vui lòng nhập số lượng sản phẩm là một số
nguyên.", "Lỗi", JOptionPane.ERROR_MESSAGE);
} catch (ClassNotFoundException | SQLException ex)
{ java.util.logging.Logger.getLogger(QLSP.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex);
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException ex)
{ java.util.logging.Logger.getLogger(QLSP.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex); }}
if (pt != null) {
try {
pt.Close();
} catch (SQLException ex)
{ java.util.logging.Logger.getLogger(QLSP.class.getName()).log(java.util.logging.Level.SE
VERE, null, ex); }} } }
private void btlammoiActionPerformed(java.awt.event.ActionEvent evt) {
DefaultTableModel model = (DefaultTableModel) tbSp.getModel();
model.setRowCount(0);
}
Câu 1
public void nhap() {
Scanner sc = new Scanner(System.in);
System.out.print("Nhập mã hàng: ");
this.maHang = sc.nextLine();
System.out.print("Nhập tên hàng: ");
this.tenHang = sc.nextLine();
System.out.print("Nhập số lượng: ");
this.soLuong = sc.nextInt();
System.out.print("Nhập đơn giá: ");
this.donGia = sc.nextDouble();
}
public void hienThi() {
System.out.println("Mã hàng: " + this.maHang);
System.out.println("Tên hàng: " + this.tenHang);
System.out.println("Số lượng: " + this.soLuong);
System.out.println("Đơn giá: " + this.donGia);
System.out.println("Thành tiền: " + thanhTien());
}
private static MatHang[] danhSachMatHang;
private static int soLuongMatHang;
public static void menu() {
System.out.print("Chọn một lua chon(1-4): ");
}
public static void nhapDanhSachMatHang() {
Scanner sc = new Scanner(System.in);
System.out.print("Nhap so luong mat hang: ");
soLuongMatHang = sc.nextInt();
sc.nextLine();
danhSachMatHang = new MatHang[soLuongMatHang];
for (int i = 0; i < soLuongMatHang; i++) {
System.out.println("NNhap thong tin cho mat hang thu " + (i + 1) + ":");
MatHang matHang = new MatHang();
matHang.nhap();
danhSachMatHang[i] = matHang; }
}
public static void hienThiDanhSachMatHang() {
if (danhSachMatHang == null) {
System.out.println("==> Danh sach mat hang chua duoc nhap.");
return;
}
System.out.println("==> DANH SACH MAT HANG DA NHAP:");
for (MatHang matHang : danhSachMatHang) {
matHang.hienThi();
System.out.println();}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
do {
menu();
choice = scanner.nextInt();
scanner.nextLine(); // Đọc bỏ dòng thừa sau khi nhập số nguyên
switch (choice) {
case 1:
nhapDanhSachMatHang();
break;
case 2:
hienThiDanhSachMatHang();
break;
case 3:
matHangCoThanhTienLonNhat();
break;
case 4:
System.out.println("Thoat chuong trinh.");
break;
default:
System.out.println("Lua chon khong hop le, vui long chon lai.");
break;
}
} while (choice != 4);
}