जावा से MySQL से कनेक्ट करते समय मुझे त्रुटियों का सामना करना पड़ रहा है, इसलिए मैं कनेक्शन स्थापना को try स्टेटमेंट में लपेट रहा हूं। हालांकि, ऐसा करने का मतलब है कि बाद में Connection चर का उपयोग करने का कोई भी प्रयास variable conn might not have been initialized त्रुटि देता है। ऐसा करने का सही तरीका क्या है? जो मेरे पास है:

Connection conn;
try {
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "alexis","pass");
}
catch (SQLException e) {
    System.err.println("SQL exception: " + e.getMessage());
    System.exit(1);
}
if (!conn.isClosed()) {
    conn.close();
}

त्रुटि:

> variable conn might not have been initialized
1
Alexis5814 24 फरवरी 2017, 01:34

3 जवाब

परिवर्तनीय चोर कोशिश/पकड़ के बाहर पहुंच योग्य है लेकिन संकलक यह पहचानने के लिए पर्याप्त स्मार्ट है कि यह संभव है कि कॉन को कभी भी कोई मान नहीं दिया जा सकता है, यहां तक ​​​​कि शून्य भी नहीं। स्थानीय चर आवृत्ति चर की तरह स्वचालित रूप से शून्य नहीं होते हैं। इसे संबोधित करने के लिए सबसे आसान काम है बदलना।

Connection con;

प्रति

Connection con = null;
1
SoftMolina 24 फरवरी 2017, 01:44

आपको अपनी वस्तु इस तरह घोषित करनी चाहिए:

Connection conn = null;

और फिर सुनिश्चित करें कि इसका उपयोग करने से पहले यह शून्य नहीं है:

if (conn != null && !conn.isClosed()) {
    conn.close();
}
0
Remy Cilia 24 फरवरी 2017, 01:37
Connection conn;  //was declared without initializing any value. You encountered error when try to use an uninitialized connection instance
Connection conn = null; // declared & initialized

कोड:

Connection conn = null;  // initialize conn with null value
try {
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "alexis","pass");
}
catch (SQLException e) {
    System.err.println("SQL exception: " + e.getMessage());
    System.exit(1);
}
finally{
    if (conn !=null && !conn.isClosed()) { // validate conn whether it is null 
        conn.close();
    }
}

वैकल्पिक रूप से, आप संसाधनों के साथ प्रयास करें का उपयोग कर सकते हैं जो स्वचालित रूप से कनेक्शन बंद कर सकता है।

  try (Connection conn = DriverManager.getConnection(CONNECTION_URL);
PreparedStatement ps = con.prepareStatement(sqlStrQuery);){
        // execution code here..
    }catch(SQLException sqle){
        // do something
    }
0
Haifeng Zhang 24 फरवरी 2017, 01:53