homework1

简明的表述最近的编程项目中遇到的一个错误(或者是其他项目中令你印象深刻的错误),陈述错误的起因、影响以及你如何解决它的。

这是一段从数据库查找数据的函数代码:

public static  String getAllRecords(){
        sql = "select a.aid,s.pid,s.name,a.type,a.ctime,a.days,a.remark,a.permission "
                + "from absence a join staffinfo s on a.pid=s.pid";//SQL语句 
 
        db1 = new DBHelper(sql);//创建DBHelper对象  
        Map<String, String> map = new HashMap<String, String>();
        res = "";
        try {  
            ret = db1.pst.executeQuery();//执行语句,得到结果集 
            
            while (ret.next()) {  
                if(res!="") res +=",";

                map.put('\"' +"id"+ '\"', ret.getString(1));
                map.put('\"' +"ownerId"+ '\"',ret.getString(2));
                map.put('\"' +"ownerName"+ '\"','\"' + ret.getString(3)+ '\"');
                map.put('\"' +"leaveType"+ '\"',ret.getString(4));
                map.put('\"' +"time"+ '\"','\"' +  ret.getString(5)+ '\"');
                map.put('\"' +"days"+ '\"', ret.getString(6));
                map.put('\"' +"reason"+ '\"', '\"' + ret.getString(7)+ '\"');
                map.put('\"' +"approval" + '\"',ret.getString(8));
                
                res = res+map.toString();
            }
            res = res.replace("=", ":");//显示数据 
            //System.out.println(res.substring(0,116));
            //res =res.substring(0,116);
            res = "["+res+"]";
            ret.close();  
            db1.close();//关闭连接  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
        return res;
    }

控制器中的调用语句为:

@RequestMapping("/records")
    public String getAllRecords() {//获取所有员工信息
        //System.out.println(LeaveService.getAllRecords());
        return LeaveService.getAllRecords();
    }

通过调用url调用查询功能时,没有返回结果。

解决办法:查看了数据库,发现存在符合查询条件的记录;

在代码中添加了关键值输出,运行后查看,发现搜索结果集ret为空,锁定错误原因为查询错误而非处理结果集产生的错误;

查看数据库查询语句,发现语句使用错误,问题解决。

posted @ 2018-03-09 14:36  小陈陈xcc  阅读(97)  评论(0编辑  收藏  举报