Mysql
 sql >> Database >  >> RDS >> Mysql

eseguire la procedura memorizzata nello script di Google Apps

Forse leggere questo potrebbe aiutarti:Richiamo di MySQL Stored Procedure da JDBC

Ecco dove sbagli:

mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

Non utilizzi la 'callstoredprocedure' dichiarata.

Leggi l'esempio di seguito:

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());
    }
}

Lasciami spiegare:la query è definita, in modo simile alla tua chiamata che accetta 1 parametro che non restituisce alcun valore. Quindi viene utilizzato in:conn.prepareCall() , quindi il parametro viene impostato sull'istruzione e quindi viene eseguito.

Come ho già detto, dovresti farlo:

mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Per favore fatemi sapere se questo ha risolto il vostro problema.