在java中打孔时钟

时间:2012-06-07 06:51:35

标签: java jdbc

我正在开发一个个人项目,在java中创建一个打卡时钟。由于会有多个用户进出时间,我创建了一个JTextField,用户将在其中输入ID number,当他们点击button(jButton1)时,该程序应该执行两项操作。

  1. 应该通过数据库JDBC的列查找ID号和
  2. 找到ID号后,程序应将当前时间复制到记录中以进入或退出,否则会显示错误消息,例如“未找到ID号”。
  3. 这是我的想法,我自己在google的帮助下学到了一些东西。但是,我找不到这一部分,任何帮助/方向都是值得赞赏的。谢谢。

1 个答案:

答案 0 :(得分:1)

您应该使用SwingWorker来执行数据库操作。由于您已经在使用JDBC,因此请使用PreparedStatement并执行查询以获取结果。

如果找到结果使用当前时间更新数据库,则可以通过调用System.currentTimeInMillis()

获取当前时间(以毫秒为单位)

一旦您的工作人员完成其操作,然后向UI显示相应的消息。

1。How to use PreparedStatement

2。A sample implementation for using SwingWorker for database operation

考虑ID来自JTextBox,请使用PreparedStatement,如下所示:

String sql = "SELECT FIRST_NAME, LAST_NAME, HOURS FROM WORKERS WHERE ID= ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstml.setInt(1, 007859378);
ResultSet rs = pstmt.executeQuery();

while(rs.next()){
   //Extract values from ResultSet
}

这样您就可以阻止自己SQL Injection,也可以阅读how Prepared Statement helps against SQL Injection