2017-06

スポンサーサイト

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

S2JDBCからPostgreSQLのストアドファンクションを呼び出す。

S2JDBCからPostgreSQLのストアドファンクションを呼び出す方法
をテストしたのでメモ。

以下は
integerのパラメータを1つ
returnでintegerを返すストアドファンクション。
(大文字、小文字は気にしないw)

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

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

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

public class CallTestService {

@Resource
protected JdbcManager jdbcManager;

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

1番目の引数でストアドファンクションの戻り値の型
2番目の引数でストアドファンクションを呼び出すSQL
INのパラメータが1つだけで、そのパラメータが null にならない場合は、
callBySql() の3番目の引数で値を直接指定します。(この場合は1)

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

参考:ストアドファンクションの呼び出し
関連記事
スポンサーサイト

コメント

コメントの投稿


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

トラックバック

http://yuuks.blog45.fc2.com/tb.php/193-feb2e462
この記事にトラックバックする(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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。