【问题标题】:Cannot implement a DAO [duplicate]无法实现 DAO [重复]
【发布时间】:2014-08-22 14:47:27
【问题描述】:

首先,在我创建这个 dao 之前,我在一个辅助类中进行了这个操作,它运行良好。现在我在这条线上得到一个NullpointerException,我称之为dao。

Student stu = pf.getUser(request.getParameter("st_id").toString());

我试图追踪它并找到问题,但我找不到。

我是 jdbc 的新手,所以任何建议都将不胜感激。

这是我的学生道;程序甚至没有进入getUser 方法。

public class StDAO extends BaseDAO {

    public Student getUser(String Id) throws Exception {
        String query = "select * from students where id=" + Id;
        ResultSet rs = execQuery(query);
        return new Student(rs.getString("name"), Id, rs.getString("gpa"));
    }

    public void addUser(String id, String name, String gpa) throws Exception {
        String query = "INSERT INTO students (name, id, `gpa`) VALUES ('" + name + "'," + id + "," + gpa + ")";
        ResultSet rs = execQuery(query);
    }
}

【问题讨论】:

  • 那么,当你的代码甚至没有进入DAO时,为什么要发布它并省略调用代码呢?猜测对我来说似乎毫无用处。
  • 如果没有进入getUser(),那么你的请求对象要么为null,要么不包含参数“st_id”,这将引发toString()上的空指针异常
  • 我想也许我的方法和方法调用彼此不兼容。 @Smutje
  • 将 request.getParameter("st_id").toString() 移动到它自己的代码行,并将其分配给 String 变量,然后将该 String 变量传递给 pf.getUser。这将帮助您进一步缩小可能出现的问题。尽可能简化每一行代码,调试代码会容易得多。
  • 您的连接设置正确吗?

标签: java jdbc nullpointerexception dao


【解决方案1】:

如果你得到一个 NPE,那么requestnull,或者request.getParameter("st_id") 的结果是null。与 DAO 问题无关,您需要告诉我们request 来自哪里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多