2017-05

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

S2JDBCからPostgreSQLのストアドファンクションを呼び出す。(複数パラメータの場合)

前回はパラメータが1つの場合だったけど、今回は2つの場合。

以下は
integerのパラメータを2つ
returnでintegerを返すストアドファンクション。

CREATE OR REPLACE FUNCTION sp_test(integer,integer)
RETURNS integer AS
$BODY$
DECLARE
in_num1 alias for $1; /* パラメータへのエイリアス*/
in_num2 alias for $2; /* パラメータへのエイリアス*/
add int := 1; /* 変数 int 初期値 */
BEGIN
return in_num1 + in_num1 + add;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION sp_test(integer,integer) OWNER TO postgres;

これをJavaのS2JDBCから呼び出し、リターン値を取る。

public class TestDto
{
public int in_num1; // 第1引数 (IN)
public int in_num2; // 第2引数 (IN)
}

import javax.annotation.Resource;
import org.seasar.extension.jdbc.JdbcManager;

public class CallTestService {

@Resource
protected JdbcManager jdbcManager;

public int call()
{
TestDto dto = new TestDto();
dto.in_num1 = 1;
dto.in_num2 = 2;
int ret =
jdbcManager
.callBySql(
Integer.class,
"{? = call sp_test(?,?)}",
dto)
.getSingleResult();
System.out.print(ret);
return ret;
}
}

callBySql() の3番目の引数にJavaBeansを指定する。
ストアドファンクションを呼び出すパラメータの順番にJavaBeansのフィールドを定義する。

これを実行すると、結果は「4」となります。


関連記事
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

http://yuuks.blog45.fc2.com/tb.php/194-4a8d24f1
この記事にトラックバックする(FC2ブログユーザー)

«  | ホーム |  »

About

yuuk

Author:yuuk
SE、プログラマー。

iMac(Late 2012, 21.5inch) New
MacBook Air(Early 2014, 11inch)
iPhone 6(64GB White) New
GALAXY S III α
iPad mini 2
NEX-5
Copen

当ブログはリンクフリーです。
リンクしていただけたら、Twitterかコメント欄でお教えください。
こちらからもリンクさせていただきます。

Twitterボタン

Recent Entries

Category

PC (26)
Mac (7)
Windows (2)
Linux (1)
スマートフォン (12)
iPhone (6)
Android (6)
WiMAX (3)
データベース (3)
カメラ (2)
車 (2)
Copen (1)
Kei (1)
プログラム (4)
本 (2)
映画 (1)
自炊 (2)
相互リンク (1)
日記 (19)

Search

Links

Counter

Amazon

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。