public void AbsenKeluar(){
loadData();
if(Name.getText().equals("")){
JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong");
}else{
try{
Statement stat=(Statement) db_koneksi.getConnect().createStatement();
String sql="UPDATE data_absensi SET jadwal_keluar = CURRENT_TIME WHERE nama LIKE '%"+nama+"%' AND date = CURRENT_DATE";
PreparedStatement p =(PreparedStatement) db_koneksi.getConnect().prepareStatement(sql);
p.executeUpdate();
getData();
JOptionPane.showMessageDialog(null, "berhasil absen");
}catch(SQLException err){
JOptionPane.showMessageDialog(null, err.getMessage());
}
}
}
我有abcent的功能,我不知道如何检查那个日期中是否有名字。。。。
如果通过"双数据";你的意思是重复。您可以在创建脚本时将列设置为唯一的。
例如,此语句创建一个具有列ID、Name和Age的表,其中ID必须是唯一的,并且不能为null。这样,您就不需要编写任何代码来检查重复项,您的DBMS将为您完成
CREATE TABLE Persons (
ID int NOT NULL UNIQUE,
Name varchar(255) NOT NULL,
Age int
);
从我在这里看到的简单教程来看,您需要先进行数据库连接,然后查询结果集,然后进行所需值(名称(的比较语句。可以参考其他教程作为例子。你不会太在意日期,只有当数据库中已经存在该名称时,它才会检查为存在。
实际上,我想尝试的一种简单方法是:
使用名称和特定日期对数据库执行SELECT查询在更新db值之前,这将是一个额外的查询执行。
像这样的东西:
"SELECT * FROM data_absensi WHERE nama LIKE '%"+nama+"%' AND date = CURRENT_DATE";
然后检查结果,如果返回为空(未找到该记录名称(,则可以确保该名称在该特定日期的数据库中还没有,因此可以执行INSERT查询,否则,如果找到(存在(该记录,则可以执行UPDATE查询。
请记住,如果检索所有列,您刚才执行的简单SELECT查询也会返回该名称记录的id,因此您可以使用该id字段作为PK来更新数据。