おそらくこれを読むと役立つかもしれません:JDBCからのMySQLストアドプロシージャの呼び出し
これはあなたが間違っているところです:
mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);
宣言された「callstoredprocedure」は使用しません。
以下の例をお読みください:
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);
これで問題が解決した場合は、お知らせください。