質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

708閲覧

ストアドプロシージャについて

tsuki219

総合スコア5

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2020/04/05 06:25

Javaのデータベースを勉強しているJava初心者です
テキストにストアドプロシージャとCallableStatementが出てきてさっぱりわかりません
理解レベルをかなり下げて柔らかく教えていただければと思います・・・・・・
よろしくおねがいします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2020/04/05 08:48

Q&Aサイトでその要求は無茶かと思います。データベースの解説書をあなたのために書けというような要求です。どこまでは理解できて、どこからわからないのか、具体的にわからない箇所を示してください。 そもそも、Javaとデータベースの初学者であれば、ストアドプロシージャやCallableStatementはまだ理解する必要ないと思いますが。
tsuki219

2020/04/05 09:19

そうですね、PreparedStatementなどはなんとなく勉強して分かったのですが CallableStatementに関しては、ストアドプロシージャというものが出てきて「?」となっています データベース側に関数っぽくよく使うSQL文を登録できる、というところまではわかりました そこで、ストアドプロシージャとは何なのか、仕組みやCallableStatementを使うメリットやデメリットなどが知りたいともった次第です
shiketa

2020/04/05 11:35 編集

すでに回答にもあるように、ストアドプロシージャはロジック(処理)を書けます。回したり判断したり。https://www.fujitsu.com/jp/products/software/resources/feature-stories/postgres/article-index/stored-procedure/ ストアドプロシージャは、DBエンジン内で実行されるので、CallableStatementで実行すると処理が終わるまでDBサーバ-クライアント間でのデータ交換は(たぶん)発生しない。JDBCでselect発行して結果取得してデータ更新しして...とすれば、何度か何度もデータ交換が発生する。ネットワーク越しにデータ交換する手間や負荷すら惜しいのであれば積極的に採用してもいいと思いますが、業務ロジックがあちこにに散らばってしまうこととの兼ね合いは考えたほうがいいでしょう。また、ストアドプロシージャの文法はそれぞれなのでその点も。
tsuki219

2020/04/05 11:37

ありがとうございます! 助かります……
guest

回答1

0

ベストアンサー

コメントのやりとりを元に、簡単に回答します。

ストアドプロシージャとはなにか

通常のSQL文では、SELECTによる検索や、INSERTによるデータ追加、UPDATEによるデータ更新など単純なことしかできません。ストアドプロシージャは、複数のSQL文や、条件判定、繰り返しなどにより、まとまった手続きや関数をSQL文の拡張により書けるようにしたものです。Javaでいうメソッドのようなものがストアドプロシージャです。
ストアドプロシージャをまったく使わなくてもデータベースプログラミングは可能です。では、ストアドプロシージャを使うメリットはなにかというと、以下があげられます。

  • 頻繁に使うSQL文の呼び出しをまとめた部品を作ることができ、簡単に再利用できる
  • データベースサーバーの中で閉じた処理なので、データ転送による無駄がなく、効率のよい処理が可能

CallableStatementとは

CallableStatementは、Javaからストアドプロシージャを呼び出す仕組みです。なので、ストアドプロシージャを使わなければ、CallableStatementは必要ありません。逆に、ストアドプロシージャを呼び出したい場合はCallableStatementを使います。それだけです。

投稿2020/04/05 09:41

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsuki219

2020/04/05 11:38

わかりやすくありがとうございます! サンプルコードなど書いてもっと理解を深めようと思います
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問