2013-07-03 2 views
0

NullPointerException при попытке подключения к БД MySQL из JavaBeanNullPointerException при попытке подключения к БД MySQL из JavaBean

org.apache.jasper.JasperException: An exception occurred processing JSP page  /ShowProductCatalog.jsp at line 9 
<jsp:useBean id= "data" class= "cart.ProductDataBean" scope="request"/> 

<html> 
    <body> 
8:  <body> 
9:   <% List productList = data.getProductList(); 
10:    Iterator prodListIterator = productList.iterator(); 
11:   %> 

первопричиной

java.lang.NullPointerException 
    cart.ProductDataBean.getProductList(ProductDataBean.java:36) 

ProductDataBean.java

public ProductDataBean() 
    { 
     try 
     { 
       String userName = "root"; 
       String password = "root"; 
       String url = "jdbc:mysql://localhost:/eshopdb"; 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     connection = DriverManager.getConnection(url,userName,password); 
       System.out.println("Database connection established"); 
     }catch(Exception e){e.printStackTrace();} 
    } 

    public static Connection getConnection() 
    { 
     return connection; 
    } 



public ArrayList getProductList() throws SQLException 
     { 
      ArrayList productList = new ArrayList(); 
/**********************HERE IS LINE 36. ERROR HERE*******************************/ 
      Statement statement = connection.createStatement();//ERROR HERE 
      ResultSet results = statement.executeQuery("SELECT * FROM product"); 

     Help 

ответ

0

См., Если connection имеет значение null сразу после его присвоения. (где вы печатаете «Установлено соединение с базой данных») Я подозреваю, что это так, и вы действительно хотите отлаживать вызов DriverManager.getConnection. Кроме того, вы уверены, что catch(Exception e){e.printStackTrace();} не стреляет?

+0

Я играл с заявлениями. И я думаю, что соединение равно null. как я могу исправить это – mbass

+0

Хотя javadoc для getConnection (http://docs.oracle.com/javase/6/docs/api/java/sql/DriverManager.html#getConnection(java.lang.String, java.lang. String, java.lang.String)) на самом деле не говорит, что он может когда-либо возвращать нуль, похоже, что он делает это, когда ему не удается подключиться к БД. Что произойдет, если вы удалите двоеточие после «localhost» или явно сделаете его «localhost: 3306» (порт по умолчанию)? –

+0

см. Также: http://dev.mysql.com/doc/refman/5.0/ru/connector-j-reference-configuration-properties.html –

Смежные вопросы