Công nghệ Java

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

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);
}

You might also like