アクセラレータ
10549 ワード
DELIMITER //
CREATE PROCEDURE proc_mulitply (INOUT inParam INT, INOUT outParam INT)
BEGIN
SET outParam = inParam * 2;
END
//
proc multiplyストレージ・プロシージャは、入力値を2倍にします.1番目のパラメータの値を入力し、2番目のパラメータの値を返します.
JPAを使用してストレージ・プロシージャを呼び出します.
StoredProcedureQuery spq = em.createStoredProcedureQuery("proc_multiply");
spq.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN);
spq.registerStoredProcedureParameter(2, Integer.class, ParameterMode.OUT);
spq.setParameter(1, 100);
spq.execute();
Integer outputParameterValue = (Integer) spq.getOutputParameterValue(2); // 2
-----------
spq.registerStoredProcedureParameter("inParam",Integer.class , ParameterMode.IN);
spq.registerStoredProcedureParameter("outParam", Integer.class, ParameterMode.OUT);
spq.setParameter("inParam", 100);
spq.execute();
Integer outParam = (Integer) spq.getOutputParameterValue("outParam");
registerStoredProcedureParameter()にパラメータ(順序、名前)、タイプ、パラメータモードを入力します.パラメータモード
public enum ParameterMode {
IN, // inout 파라미타
INOUT, // input, output 파라미타
OUT, //output 파라미타
REF_CURSOR // cursor 파라미타
Name Storeプロシージャの使用@NamedStoredProcedureQuery(
name = "multiply",
procedureName = "proc_multiply",
parameters = {
@StoredProcedureParameter(name="inParam" , mode = ParameterMode.IN ,type = Integer.class),
@StoredProcedureParameter(name="outParam" , mode = ParameterMode.OUT ,type = Integer.class)
}
)
@Entity
public class Member {...
名前ストレージ・プロシージャの使用StoredProcedureQuery spq2 = em.createNamedStoredProcedureQuery("multiply");
spq2.setParameter("inParam", 100);
spq2.execute();
Integer outParam = (Integer) spq2.getOutputParameterValue("outParam");
Reference
この問題について(アクセラレータ), 我々は、より多くの情報をここで見つけました https://velog.io/@wonjongseo/스터오-프로시저テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol