我正在从事一个个人项目,在 java 中创建一个打卡钟。由于将有几个用户打卡进出我创建了一个JTextField
用户将在其中键入他们的位置ID number
以及当他们单击button(jButton1)
程序时应该做两件事。
- 应该通过数据库 JDBC 的列查找 ID 号和
- 一旦找到 ID 号,程序应将当前时间复制到打卡或下班记录中,否则会显示错误消息,例如“找不到 ID 号”。
这是我的想法,我在谷歌的帮助下自己学到了一些东西。但是,我找不到这部分,任何帮助/方向都表示赞赏。谢谢你。
您应该使用 aSwingWorker
来执行数据库操作。由于您已经在使用 JDBC,因此请使用PreparedStatement
并执行您的查询来获取结果。
如果发现结果用当前时间更新数据库,您可以通过调用以毫秒为单位获取当前时间System.currentTimeInMillis()
一旦您的工作人员完成其操作,然后向 UI 显示适当的消息。
考虑到 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 注入