Si vous voulez la valeur renvoyée via un paramètre OUT d'une procédure stockée, vous n'utilisez pas de ResultSet, vous utilisez le paramètre CallableStatement associé au paramètre OUT de la procédure stockée. Par exemple, pour la table de test
CREATE TABLE `allsections_list` (
`SECTION_ID` int(11) NOT NULL,
`SECTION_NAME` varchar(50) DEFAULT NULL,
PRIMARY KEY (`SECTION_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
contenant les exemples de données
SECTION_ID SECTION_NAME
---------- ---------------
1 one_section
2 another_section
et la procédure stockée
CREATE PROCEDURE `getSECTION_NAME`(IN myID INT, OUT myName VARCHAR(50))
BEGIN
SELECT SECTION_NAME INTO myName FROM allsections_list WHERE SECTION_ID = myID;
END
puis le code Java suivant
try (CallableStatement myFirstCs = conn.prepareCall("{call getSECTION_NAME(?,?)}")) {
myFirstCs.setInt(1, 2); // set IN parameter "myID" to value 2
myFirstCs.registerOutParameter(2, Types.VARCHAR);
myFirstCs.execute();
String sectionName = myFirstCs.getString(2); // get value from OUT parameter "myName"
System.out.println(sectionName);
}
impressions
another_section