首页 > 解决方案 > Java Stored Procedures how to register out parameter properly

问题描述

So this is my stored procedure

    DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `getStudentsName`(IN STUD_ID INT, OUT S_FIRST VARCHAR(255), S_LAST VARCHAR(255))
BEGIN
    SELECT first, last INTO S_FIRST, S_LAST
    FROM studentsinfo
    WHERE id  = STUD_ID;
END$$
DELIMITER ;

This is my java code:

String sql = "{call getStudentsName (?, ?, ?)}";
            stmt = conn.prepareCall(sql);

            int studID = id;
            stmt.setInt(1, studID);
            stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
            stmt.registerOutParameter(3, java.sql.Types.VARCHAR);

            stmt.execute();

It's giving me "Parameter number 3 is not an OUT parameter" error. I've seen examples with only 1 out parameter so I'm not sure if I did the right thing since I have 2 out parameter.

标签: javamysqljdbc

解决方案


推荐阅读