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;
}
////////////////////////////////////////////// <登记/> 当我尝试连接数据库时,它会抛出NULL POINTER EXCEPTION 堆栈跟踪是:
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)
答案 0 :(得分:0)
我假设stacktrace中的check_Customer实际上是CustRegistration方法。 在这种情况下,它意味着未设置con字段(它为空)。
在构造函数中,您将捕获异常,然后只打印它们。我认为你有其中一个例外。也许你的类路径中没有oracle驱动程序?
答案 1 :(得分:0)
很可能是您的DB is DOWN
所以con
为空,因为它无法建立连接。