sql >> Databáze >  >> RDS >> Mysql

spustit uloženou proceduru ve skriptu aplikací Google

Možná vám přečtení tohoto článku pomůže:Volání uložených procedur MySQL z JDBC

Tady děláte chybu:

mysqlquery = mysqldbconn.prepareCall(vstrSQLStatement);

Nepoužíváte deklarovaný 'callstoredprocedure'.

Přečtěte si příklad níže:

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

Dovolte mi vysvětlit:Dotaz je definován, podobně jako vaše volání přijímá 1 parametr, který nevrací žádnou hodnotu. Poté se použije v:conn.prepareCall() a poté se parametr nastaví na příkaz a poté se provede.

Jak jsem zmínil, měli byste udělat toto:

mysqlquery = mysqldbconn.prepareCall(callstoredprocedure);

Pokud to váš problém vyřešilo, dejte mi prosím vědět.




  1. Technické srovnání:Microsoft Access 2016 vs SQL Server 2016

  2. Převést „datetime2“ na „smalldatetime“ v SQL Server (příklady T-SQL)

  3. Monitorování databáze PostgreSQL:Tipy, co monitorovat

  4. Získejte počet nul v celém čísle pomocí MySQL