शायद इसे पढ़ने से आपको मदद मिल सकती है:JDBC से MySQL स्टोर्ड प्रोसीजर को कॉल करनाए>
यहीं आप गलत हो जाते हैं:
mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);
आप घोषित 'कॉलस्टोर्ड प्रक्रिया' का उपयोग नहीं करते हैं।
नीचे उदाहरण पढ़ें:
public static void getSkills(int candidateId) {
//
String query = "{ call get_candidate_skill(?) }";
ResultSet rs;
try (Connection conn = MySQLJDBCUtil.getConnection();
CallableStatement stmt = conn.prepareCall(query)) {
stmt.setInt(1, candidateId);
rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(String.format("%s - %s",
rs.getString("first_name") + " "
+ rs.getString("last_name"),
rs.getString("skill")));
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
मुझे समझाएं:क्वेरी को परिभाषित किया गया है, आपके कॉल के समान 1 पैरामीटर को कोई मान नहीं लौटा रहा है। फिर इसका उपयोग इसमें किया जाता है:conn.prepareCall() , और फिर पैरामीटर को स्टेटमेंट पर सेट किया जाता है और फिर इसे निष्पादित किया जाता है।
जैसा कि मैंने उल्लेख किया है, आपको यह करना चाहिए:
mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);
कृपया मुझे बताएं, अगर इससे आपकी समस्या ठीक हो गई है।