sql >> Database >  >> RDS >> Mysql

voer de opgeslagen procedure uit in het script van google apps

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.




  1. SQL-alchemie:ValueError te veel waarden om uit te pakken?

  2. Neo4j - Gegevens selecteren met MATCH met Cypher

  3. Lui ophalen van enkele kolom (klassekenmerk) met Hibernate

  4. Ontbrekende waarde tussen twee Mysql-tabellen vinden