0

我正在从事一个个人项目,在 java 中创建一个打卡钟。由于将有几个用户打卡进出我创建了一个JTextField用户将在其中键入他们的位置ID number以及当他们单击button(jButton1)程序时应该做两件事。

  1. 应该通过数据库 JDBC 的列查找 ID 号和
  2. 一旦找到 ID 号,程序应将当前时间复制到打卡或下班记录中,否则会显示错误消息,例如“找不到 ID 号”。

这是我的想法,我在谷歌的帮助下自己学到了一些东西。但是,我找不到这部分,任何帮助/方向都表示赞赏。谢谢你。

4

1 回答 1

1

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

如果发现结果用当前时间更新数据库,您可以通过调用以毫秒为单位获取当前时间System.currentTimeInMillis()

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

1.如何使用PreparedStatement

2.使用 SwingWorker 进行数据库操作的示例实现

考虑到 ID 来自 a 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 注入,还可以阅读Prepared Statement 如何帮助对抗 SQL 注入

于 2012-06-07T06:58:13.047 回答