【问题标题】:error in jsp : NullPointerExceptionjsp中的错误:NullPointerException
【发布时间】:2014-08-03 07:54:10
【问题描述】:

我有一个来自现有数据库的 getConnetion 的 MyDb 类和一个插入和更新数据库中的课程表的 COURSES 类。我在我的 jsp 文件中使用这个类,但是当我运行它时它的错误:

http 500 error :
org.apache.jasper.JasperException: java.lang.NullPointerException

MYDB 类:

public MYDB() throws ClassNotFoundException, SQLException {
    Class.forName(DRIVER);
    con = DriverManager.getConnection(DB_URL, UNAME, PASS);

    stmt = this.con.createStatement();
}

public Connection getCon() {
    return con;
}

public void setSQL(String SQL) throws SQLException {
    res = stmt.executeQuery(SQL);
}

课程类:

public COURSES() throws ClassNotFoundException, SQLException {
    MYDB c = new MYDB();

}

public void Insert(int id, String name, int unit) throws ClassNotFoundException, SQLException {

    String SQL = "INSERT INTO courses VALUES(" + id + ",'" + name + "' , " + unit + ")";
    c.getStmt().executeUpdate(SQL);
}

public void updateName(int id, String newName) throws SQLException {
    String s = newName ;

    String SQL = "update courses set name=" + s + "where id is" + id;
    c.getStmt().executeUpdate(SQL);
}

jsp:

 <% 
        COURSES d = new COURSES() ;
        d.updateName(12, "op");
        %>

并且这个 id 存在于课程表中。它的插入功能没问题并且可以工作。 我的错误在哪里?

【问题讨论】:

  • 你能添加完整的堆栈跟踪吗?
  • 1) 始终提供异常的完整堆栈跟踪。 2) Jasper 在您发布的任何代码中在哪里?
  • 另外:where id is" + id 必须是 where id =" + id
  • 我做 where id =" + id 但又没用。

标签: java mysql database jsp jdbc


【解决方案1】:

在构造函数中你给一个local变量c赋值:

public COURSES() throws ClassNotFoundException, SQLException {
    MYDB c = new MYDB();
}

在“Insert”和“updateName”方法中,您将引用一个可能尚未初始化的实例变量

为了初始化实例变量,构造函数应该看起来像这样:

public COURSES() throws ClassNotFoundException, SQLException {
    c = new MYDB();
}

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多