Si desea el valor que se devuelve a través de un parámetro OUT de un procedimiento almacenado, entonces no usa un ResultSet, usa el parámetro CallableStatement asociado con el parámetro OUT del procedimiento almacenado. Por ejemplo, para la tabla de prueba
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
que contiene los datos de muestra
SECTION_ID SECTION_NAME
---------- ---------------
1 one_section
2 another_section
y el procedimiento almacenado
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
luego el siguiente código Java
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);
}
impresiones
another_section