ストアドプロシージャのOUTパラメータを介して返される値が必要な場合は、ResultSetを使用せず、ストアドプロシージャのOUTパラメータに関連付けられたCallableStatementパラメータを使用します。たとえば、テストテーブルの場合
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
サンプルデータを含む
SECTION_ID SECTION_NAME
---------- ---------------
1 one_section
2 another_section
およびストアドプロシージャ
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
次に、次の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);
}
プリント
another_section