2017-10

スポンサーサイト

上記の広告は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」となります。


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」となります。

参考:ストアドファンクションの呼び出し

PostgreSQLでPL/pgSQLを使うための準備

PostgreSQLでストアドプロシージャ(PL/pgSQL)を使う場合は

plpgsqlが使えるようになっている必要がある。

使えるようになっているかは、以下のSQLで確認できる。
select * from pg_language;

plpgsqlがあれば使用できる。
plsql


ない場合は以下のSQLを実行する。
CREATE LANGUAGE plpgsql;



「残念な人の思考法」読みました。

残念な人の思考法
山崎将志

- 頭は悪くない、でも仕事ができない。 -

残念な人の思考法


一言で言ってしまえば、大事なのはプライオリティ(優先度)と ストーリーですかね。

この手の教養本はなぜか好きです。

洗脳されるつもりはありませんが、新しいものの見方を知ること出来ますね。





東北地方太平洋沖地震(東日本大地震)

3月11日(金)に東北地方太平洋沖地震が発生し、いろいろな支援、報道がされてますが、

被災地の方の「たくましさ」には頭が下がる思いです。

都内は、直接の影響はないものの、計画停電、まとめ買いで混乱しております。

みなさん、「まとめ買いは控えて、必要なものだけにしましょう。」

自分には支援と言うほどのことは出来ませんが、少しばかりの「募金」と、

「節電」で貢献出来ればと思います。まずは自分の出来ることから。

iTunesをアップデートしたら英語版になった。

iTunesのアップデートが出ていたので、アップデートしたらメニューが英語に

なってました。あせって、言語設定確認しても「Japanese」になってます。

調べてみると、アップデート後にインストーラが作成したアイコン以外から起動すると

この現象になるようです。(自分で作ったショートカットとか、iPodを接続して自動起動

したりすると)

解決するには、

コントロールパネル → プログラムの追加と削除 → iTunes → 変更 → 修復する

デスクトップのアイコンかスタートメニューから起動しましょう。

ソーシャル・ネットワークを見てきた。



CMで見て気になってたのと、映画館のポイント期限が近づいていたので見てきましたw

世界最大のSNS、Facebook創設のお話です。

発端が、女の子ランキングサイトとか、アイディア盗みとかビックリする内容でしたが、

事実、Facebookは世界最大のユーザ数であり、やっぱりスゴイなぁと思いました。

途中、Apachやら、wgetコマンドやら、Perlやら、その世界の人しか分からない

言葉が出てきますが、その辺は流して雰囲気で感じてくさだい。

個人的には、起業について、プログラマーのあり方、人間関係の難しさを

考えさせられる作品だと思いました。

PostgreSQL管理ツールpgadmin3をインストール

pgAdmin3.png

前回PostgreSQLをインストールしたので管理ツールをインストール。
コマンドからでも出きるのですが、やっぱりツールを使った方が簡単。

(インストールはrootにて行う)
# yum install pgadmin3


使い方は「pgadmin3 使い方」とかでググると沢山出てくるのでそちらを参照してくださいw
(人任せですみません)

PostgreSQLをFedora 10 にインストール

■ インストール 
Fedora 10 にPostgreSQLをyumでインストールします。

コマンドはroot権限で実行します。
# su
パスワード:

インストール!
# yum install postgresql-server

う~ん。簡単です。w

インストール時に、postgresユーザが自動で追加されます。
PostgreSQLの起動、終了はrootで行いますが、データベースの操作はこのユーザを使用します。

■ 初期設定 
インストールが完了したら、

まずpostgresユーザに移行します。
# su - postgres

以下のコマンドを実行して初期化します。
# initdb --encoding=UTF8 --no-locale


--encoding=UTF8 は使用する文字コードを設定します。
--no-locale はロケールを使用しないことを設定するオプションです。
ロケールはソートなどで言語に応じた処理をするらしいが、日本語環境では特に必要ない。
逆に --no-locale を指定しないとバグがあるらしいので指定しておく。

完了すると、/var/lib/pgsql/data にデータベースクラスタが作成されます。

されにデフォルトだとローカルからしかアクセスできないので、
/var/lib/pgsql/data/postgresql.conf を編集します。
# vi /var/lib/pgsql/data/postgresql.conf

listen_addresses = '*'
port = 5432


外部アクセスの設定。
/var/lib/pgsql/data/pg_hba.conf
# vi /var/lib/pgsql/data/pg_hba.conf

TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 192.168.1.0./24 password

192.168.1.XXXの端末からアクセスできる。

■ 起動と終了 
スクリプトもyumでインストールすると作成されるので、
以下コマンドて起動、終了できます。
# service postgresql start
postgresql サービスを開始中: [ OK ]
# service postgresql stop
postgresql サービスを停止中: [ OK ]


<追記>
OS起動時に、起動するようにする。
# chkconfig postgresql on

明けましておめでとうございます。

初日の出

明けましておめでとうございます。

今年はいい年になりますように。(-人-)



元旦は犬吠埼に初日の出を見に行ってきました。

ご来光は感動でした。


こちらは、日の出前。
夜明け前

犬吠埼での初日の出は初めてだったのですが、ものすごい人と車でした。
初日の出2

途中で川崎大師へ寄って初詣に。やっぱり有名所は人がいっぱいですね。
川崎大師

年越しそば。
年越しそば


インテルSSD、120GBを買った。そして来年もよろしく。

今年も最後の1日となりました。

このブログもマイペースですが、引き続き更新していきます!よろしく。



SSDSA2MH120G2K5

この前のエントリでインテルのSSDを紹介しましたが、

ついに買ってしまいました。どうしても我慢できなくなってw

とりあえずベンチマークだけとってみました。

ベンチマーク


やっぱりリードは早いですね。

OSの立ち上がりも、ソフトの起動もサクサクですw




WiMAX Aterm WM3500R クレードルで使う

wm3500r.jpg

いろいろ、噂されていますが、WM3500Rってファームウェアにバグがあるんですかね。

Wi-Fiで接続してると、たまにインターネットに接続できなくなります。

というか、接続はしてるけど、やたらと重くなります。

Pingをうつと、3秒も4秒もかかる。通常は1msとか2msなのに。。。

iPhoneとかXPERIAから接続してるときは気にならないんですが、

PCからだとイライラです。


仕方ないのでオプションのクレードルを買ってきました。

ヨドバシで2980円。って、本体代より高いじゃん!


帰宅して早速接続。といっても、本体を乗っけるだけですが。

うん。快適、快適。


仕様的には十分なんですが、安定性が不安ですね。

まだ、ファームウェアの更新が予定されてるみたいなので、

今後に期待です。




WiMAX Aterm WM3500Rを購入~

10月からBIC WiMAXで、URoad-7000を使ってましたが、

どうしても電池が不満だったので、変えました。

URoad-7000は電池が3.5時間しかもたないし、

エネループで充電しようにも、ケーブルが特殊だったり、給電しかできなかったり。



ということで、Aterm WM3500Rを購入。

WM3500R

WM3500R

こちらはMicroUSBケーブルなので、ケーブルは汎用的に使えそうです。

XPERIAもMicroUSBだし今後はこれが主流になるのかな?

肝心の電池も8時間持つので、ちょっとの外出ならエネループを持ち歩かなくても

よさそう。


左が「Aterm WM3500R」右が「URoad-7000」
若干Aterm WM3500Rの方が大きいみたい。
WM3500R

横から。
高さは同じくらい。
WM3500R


肝心の本体はビックカメラでは扱ってないようなので、

ヨドバシに乗り換えました。

WiMAXのいいとこは、2年縛りがないこと。(30日以内の解約は違約金あり)

解約料なしで乗り換えです。

新たなプランは年間パスポートにしたので、月額3880円と安くなりました。(1年縛りはあり)

さらに、キャンペーン中なので定価19800円する本体は2800円でゲットです!w


初期設定もとくに問題なく、完了。

12/24に新しいファームウェアが公開されていたので早速行う。

アップデートも設定ボタンの長押しで完了。簡単です。

アップデートで無線LANのステルス機能が追加されたみたいですね。

でもマルチSSIDはまだなのか。。。



お決まりですが速度チェック。

SpeedTest

通常でも4~7Mbpsは出てるので、ネットやメールには十分です。

家でも外でも使えるし、WiMAXモバイルルータは欠かせないものになってます。



20代にしておきたい17のこと

20代にしておきたい17のこと

普段本なんてめったに読まないけど、久しぶりに夢中になった本。

自分では考えないものの見方が見えてくる感じ。

難しすぎず、読みやすい構成なので、読書の苦手な自分でも一晩で読めました。

私は20代も後半ですが、是非とも20代に入った方には読んでもらいたいです。


とりあえず、項目だけ列挙。

1 人生最大の失敗をする
2 大好きなことを見つける
3 一流のものに触れる
4 人生を100パーセント楽しむ
5 死ぬほどの恋をする
6 一生つきあえる親友を見つける
7 両親と和解する
8 自分のルーツを知る
9 才能のかたちを知る
10 専門分野を持つ
11 メンターを探す
12 人生が変わる本と出合う
13 質問力を鍛える
14 お金と時間の管理を学ぶ
15 没頭できる趣味を持つ
16 異文化に触れる旅に出る
17 運について学ぶ

「5 死ぬほどの恋をする」は、え!?って感じですが、面白いです。


スタイリッシュなデザインタップ flecc barra

flecc barra

コレを買いに出かけたわけではなかったのですが、

ちょっとかっこ良かったの買っちゃいました。

電源周りってコードとかですぐきたなくなるんですよね。

これですこしはキレイになるかな。


flecc barra







«  | ホーム |  »

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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。