我正在创建一个java程序,它要求用户在获得访问权限之前提供登录详细信息。我正在使用 javaDB,它将数据存储在名为 LOGIN_DETAILS 的表中,我有一个成功的连接,但问题是每当我运行该程序时,我都会收到此错误:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Classes.Login.bActionPerformed(Login.java:188)
和login.java:188代码是:Statement st = con.createStatement();
下面是我的完整代码;
public void connect(){
try{
String host = "jdbc:derby://localhost:1527/db1";
String uName = "";
String uPass = "";
con = DriverManager.getConnection(host, uName, uPass);
}
catch(SQLException ex){
}
}
try{
Statement st = con.createStatement();
Menu MM = new Menu();
String user = t.getText().trim();
String pass = t1.getText().trim();
String sql = "SELECT USERNAME, PASSWORD FROM "
+ "APP.LOGIN_DETAILS WHERE "
+ "USERNAME ='"+user+"'PASSWORD ='"+pass+"'";
ResultSet rs = st.executeQuery(sql);
int count = 0;
while(rs.next()){
count = count + 1;
}
if(count ==1){
JOptionPane.showMessageDialog(null, "User Found, Access Granted");
this.dispose();
MM.setVisible(true);
}
else if(count > 1){
JOptionPane.showConfirmDialog(null, "Duplicate User, Access Denied");
this.setVisible(true);
}
else{
JOptionPane.showMessageDialog(null,"User not Found");
this.setVisible(true);
}
}
catch(SQLException | HeadlessException ex){
}
请帮我解决这个问题,谢谢。
最佳答案
除非这段代码出现在其他地方,否则您在 con 上调用 createStatement() 之前似乎没有调用 connect() 方法(用于建立连接)。因此,此时 con 可能仍指向 null。如果是这样的话,就可以解释这个异常了。
关于java - 使用 Java 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20778011/