如何使用JTable每天节省学生的出勤率?

时间:2013-07-29 17:34:37

标签: java swing jdbc jtable

大家好我想将学生的出勤存储到数据库中,我可以将存储的用户名填充到JTable和当前日期,但我想将JTextfield值保存到数据库中,新记录应该保存到数据库中第二天。enter image description here

我正在使用rs2xml来填充关于数据库的jtabel以及sqlite manager(firefox addon)。

代码:

private void update_table(){
try{
Connection con=connectdatabse.ConnecrDb;
String sql = "select * from studentinfo";
PreparedStatement pst = con.prepareStatement(sql); 
ResultSet rs = pst.executeQuery();
TableStudent.setModel(DbUtils.resultSetToTableModel(rs));//TableStudent is variable of JTable
}
catch(Exception e){
  JOptionPane.showMessageDialog(null, e);

}

2 个答案:

答案 0 :(得分:3)

GUI设计

您无需在JTable中拥有当前日期。您可以将它放在JTable上方的JLabel中。

如果您将JTable中的当前/缺席布尔值作为JCheckBox放在名称之前,那将是一个更好的用户体验(ux)。这使您的GUI看起来更像纸卷书。

我希望能够为您绘制一张我想到的GUI图片。我希望我的描述有所帮助。

数据库设计

我建议使用下表的关系数据库。

Student
-------
Student ID
Student Last Name
Student First Name
...

学生ID是一个自动递增的整数,定义为表的主(聚类)键。

School Date
-----------
School Date

这张表每天都有一行,这是学年的一部分。这样,您的代码就不必担心周末或学校假期。如果当前日期在表格中,那就是上学日。

您必须在学年或学期开始前创建并加载此表。

学校日期降序是表格的主要(聚类)键。

Attendance
----------
Attendance ID
School Date
Student ID
Present / Absent

考勤ID是一个自动递增的整数,定义为表的主(聚类)键。

学生证是指向学生表的外键,用于定义哪个学生在场/缺席。

我希望这是足以帮助您入门的信息。

答案 1 :(得分:1)

您使用的是哪个数据库系统?是真的需要数据库还是文件足够?看起来像学习/教育任务。

因此,您可以尝试使用名为序列化的技术存储Java对象。或者您可以编写文本文件(例如 CSV文件)。如果您想将数据存储到数据库,您应该查看 JDBC

这是使用互联网搜索条件存储数据的三种方式,可以开始您的旅程。

祝你好运。