为什么我的连接对象为null?

时间:2015-04-12 11:24:09

标签: servlets jdbc nullpointerexception dao

private static final String DB_URL = "jdbc:derby://localhost:1527/ShopDB";
private static final String DB_CLOSE = DB_URL + ";shutdown=true";
private static final String DB_DRIVER = "org.apache.derby.jdbc.ClientDriver";
private static Connection con = null;

public WebshopDAO() {
    try {
        Class.forName(DB_DRIVER).newInstance();
        con = DriverManager.getConnection(DB_CLOSE);
    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e) {
        e.printStackTrace();
    }
}

我在另一个类中创建了一个WebshopDAO对象。之后,我在WebDAO中调用了一个方法:

public CatalogDTO createCatalogDTO() {
    String query = "SELECT * FROM Catalog";
    CatalogDTO catalog = new CatalogDTO();
    try {
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
            while(rs.next()) {
                Catalog c = new Catalog();
                c.setCName(rs.getString("CName"));
                c.setCategoryNr(rs.getInt("CategoryNr"));
                c.setSupercategoryNr(rs.getInt("SupercategoryNr"));
                catalog.addCatalog(c);
            }
    } catch (SQLException e) {
        e.getMessage();
    }
    return catalog;
}

因此,当我调用createCatalogDTO方法时,我得到一个NullPointerException。我不知道为什么。我检查了驱动程序URL和数据库URL,它们是正确的。我是第一次使用servlet。使用此WebshopDAO的类是一个servlet,使用调试器时遇到了一些问题。

你能告诉我可能的错误吗?我正在寻找好几个小时,但我找不到它。

编辑:

这是我得到的:

java.lang.NullPointerException
WebshopDAO.createCatalogDTO(WebshopDAO.java:96)
Navigation.doGet(Navigation.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

0 个答案:

没有答案