Nếu bạn muốn giá trị được trả về thông qua tham số OUT của một thủ tục được lưu trữ thì bạn không sử dụng ResultSet, bạn sử dụng tham số CallableStatement được liên kết với tham số OUT của thủ tục được lưu trữ. Ví dụ:đối với bảng kiểm tra
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
chứa dữ liệu mẫu
SECTION_ID SECTION_NAME
---------- ---------------
1 one_section
2 another_section
và thủ tục được lưu trữ
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
sau đó là mã Java sau
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);
}
bản in
another_section