Se si desidera il valore restituito tramite un parametro OUT di una stored procedure, non si utilizza un ResultSet, si utilizza il parametro CallableStatement associato al parametro OUT della stored procedure. Ad esempio, per la tabella di prova
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
contenente i dati di esempio
SECTION_ID SECTION_NAME
---------- ---------------
1 one_section
2 another_section
e la procedura memorizzata
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
quindi il seguente codice 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);
}
stampe
another_section