जावा डेटाबेस के साथ काम करना - जावा, डेटाबेस, nullpointerexception, कनेक्शन

मैं एक जावा प्रोग्राम बना रहा हूं जिसके लिए एक उपयोगकर्ता की आवश्यकता हैपहुंच प्राप्त करने से पहले लॉगिन विवरण प्रदान करने के लिए। मैं एक 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){
}

कृपया समस्या का समाधान करने में मेरी मदद करें, धन्यवाद।

उत्तर:

उत्तर № 1 के लिए 1

जब तक यह कोड कहीं और दिखाई नहीं देता है, यहऐसा लगता है कि आपने conStatement () को con पर कॉल करने से पहले कनेक्ट () विधि (जो कनेक्शन सेट अप करती है) नहीं कहा है। इस प्रकार, कॉन की संभावना अभी भी उस बिंदु पर शून्य हो सकती है। यदि यह मामला है, तो यह अपवाद की व्याख्या करेगा।


जवाब के लिए 0 № 2

con उचित रूप से इस स्थिति में शून्य होने की संभावना है connect() बुलाया नहीं जा रहा है हालांकि, शायद connect() कहा जा रहा है और एक है SQLException अपवाद जो चुपचाप पकड़ा जा रहा है। ज्यादातर मामलों में, अपवाद पकड़ना और इसके बारे में कुछ भी नहीं करना एक बुरा विचार है। कम से कम, आपको चाहिए log the exception

यह भी गलत है

String sql = "SELECT USERNAME, PASSWORD FROM "
+ "APP.LOGIN_DETAILS WHERE "
+ "USERNAME =""+user+""PASSWORD =""+pass+""";

प्रयत्न

String sql = "SELECT USERNAME, PASSWORD FROM "
+ "APP.LOGIN_DETAILS WHERE "
+ "USERNAME = "" +user+ " and "PASSWORD =""+pass+""";

संबंधित सवाल
सबसे लोकप्रिय