无法将java.lang.String解析为java.lang.Boolean

2014-05-03 java sql database ms-access jtable

我仍然是编程新手。目前,我有一个检查员工出勤情况的程序。员工ID和姓名是从数据库中检索的。雇员的每日出勤被保存在数据库的出勤表中,其中字段仅具有ID,empID,dateAttended,“现在”,“加班”。现在,我想从出勤表中检索所有值。首先,我可以很好地检索这些值,但是在添加了“ a.dateAttended”和“ a.Present”之后,我得到了此异常。关于如何解决此问题的任何建议?

private void attendanceView(){
    try{
        String query ="SELECT e.ID,e.firstName,e.lastName,e.position,a.dateAttended,a.Present FROM employees e INNER JOIN attendance a ON e.ID=a.empID";
        Object[][] result = connectToDB(query);

        attendanceTable.setModel(new javax.swing.table.DefaultTableModel(
            result, new String [] {"Employee ID","First Name","Last Name", "Position", "Date", "Present"}
        ) 
        {
            Class[] types = new Class [] {
                java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class
            };
            boolean[] canEdit = new boolean [] {
                false, false, false, false, false, true
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {

                return canEdit [columnIndex];
            }
        });   
        }catch (ClassNotFoundException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        } 
}

Answers

由此,在评论中,

SELECT e.ID,e.firstName,e.lastName,e.position,a.dateAttended 
FROM employees e INNER JOIN Attendance a ON a.empID =e.ID 
WHERE a.dateAttended = (month of the system date)

谷歌搜索ms访问日期函数导致我到now(),它返回当前日期和时间,和month(),它返回月份号。这意味着您可以执行以下操作:

SELECT e.ID,e.firstName,e.lastName,e.position,a.dateAttended 
FROM employees e INNER JOIN Attendance a ON a.empID =e.ID 
WHERE month(a.dateAttended) = month(now())

但是,有更好的方法可以做到这一点。在where子句中使用函数会减慢生产速度。另外,这仅对当前月份有利。我建议您使用Java代码生成两个日期变量。第一个是您要搜索的月份的第一天,另一个是下个月的第一天。那么你的where子句就是这个

where a.dateAttended >= the first variable
and a.datAttended < the other variable

如果访问支持的话,使用查询参数将进一步改善它。我不使用它,所以我不知道。

Related