Misschien helpt het om dit te lezen:MySQL Stored Procedures aanroepen vanuit JDBC
Hier ga je de fout in:
mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);
Je gebruikt de gedeclareerde 'callstoredprocedure' niet.
Lees onderstaand voorbeeld:
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());
}
}
Laat het me uitleggen:de query is gedefinieerd, vergelijkbaar met uw oproep die 1 parameter accepteert die geen waarde retourneert. Vervolgens wordt het gebruikt in de:conn.prepareCall() , en vervolgens wordt de parameter ingesteld op de instructie en vervolgens wordt deze uitgevoerd.
Zoals ik al zei, moet je dit doen:
mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);
Laat het me weten als dit je probleem heeft opgelost.