2013-03-10 81 views
1
public class MyBean { 

    private Connection con; 

    Set combinations; 
    public MyBean() 
    { 

     try 
     { 
      Class.forName("oracle.jdbc.OracleDriver"); 
      con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger"); 
      con.setAutoCommit(true); 

     } 
     catch(ClassNotFoundException cfe) 
     { 
      cfe.printStackTrace(); 
     } 
     catch(SQLException se) 
     { 
      se.printStackTrace(); 
     } 

    } 

     public boolean CustRegistration(String name,String username, String pwd, String address, String city,String state,long phoneno) 
    { 
     try 
      { 
     PreparedStatement st = con.prepareStatement("insert into custreg values(?,?,?,?,?,?,?)"); 
       st.setString(1,name); 
      st.setString(2,username); 
      st.setString(3,password); 
      st.setString(4,address); 
      st.setString(5,city); 
      st.setString(6,state); 
      st.setLong(7 ,phoneno); 
      int i = st.executeUpdate(); 

      if(i > 0) 
       return true; 

     } 
     catch(SQLException sety) 
     { 
      sety.printStackTrace(); 
     } 
     return false;  
    } 
public boolean check_Customer(String username,String password) 
{ 
    try 
    { 
    PreparedStatement st; 
    st = con.prepareStatement("select * from custreg where username=? and password=?"); 

     st.setString(1,username); 

     st.setString(2,password); 

     ResultSet rs = st.executeQuery(); 

     if(rs.next()) 
     { 
      st.close(); 
      return true;   
     } 

     st.close(); 
    } 
    catch(SQLException sert) 
    { 
     sert.printStackTrace(); 
    } 

    return false; 
} 

//////////////////////////////////////// //////
当过我尝试与数据库连接,它抛出空指针异常 堆栈跟踪为:的PreparedStatement抛出.NullPointerException

java.lang.NullPointerException 
    Bean.MyBean.check_Customer(MyBean.java:35)// line 35 is prepared statement which uses connection    
Servlets.LoginSubmit.doPost(LoginSubmit.java:63)//the code here is 
if(mybean.check_Customer(user,pass)) 

javax.servlet.http.HttpServlet.service(HttpServlet.java:647) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)

+2

'prepareStatement'可以抛出* SQLException *(不是* NPE *)。你是否检查过'con'不是'null'? – Maroun 2013-03-10 18:31:36

+0

您的check_Customer方法在哪里? – Anubhab 2013-03-10 18:31:43

+1

@beigh看看你在评论中发布的代码。你认为它是可读的吗? – Maroun 2013-03-10 18:36:07

回答

0

我假设stacktrace中的check_Customer实际上是CustRegistration方法。 在这种情况下,它意味着con域没有被设置(它是空的)。

在构造函数中捕获异常,然后只是打印它们。我想你有这些例外之一。也许你的类路径中没有oracle驱动程序?

0

很可能是您的DB is DOWN因此con为空是因为它无法获得连接。

相关问题