アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは、こちらの皆様には大変お世話になっております。

早速ですがまた質問です^_^;
今MVCモデルを使って社員データをDBにいれる簡単なプログラムを作っているのですが、DB接続がうまくいきません。というよりも私の考え方で合っているのかが定かではないのですが…。
BeanのほうでDB接続のメソッドを作って、それをサーブレットで使おうと思っているのですが、Beanクラスのコンパイルができないんです。(画面表示担当のJSPから直接DBへ接続するぶんにはなんの問題もありません)
Beanにはいろんなメソッドを作るつもりで、DBへの指示のSQL文も一つ一つメソッド(データを追加したり、削除したり)を作るつもりでいます。
問題はメソッドの中でDB接続の処理をしてしまうと、別のメソッドでStatementオブジェクトが使えなくなってしまうことです。
DB接続のメソッドは戻り値も引数もなく、DBへ指示を出すメソッドはその時々に合ったものにしようと考えています。この引数をうまく使うのかなぁ、と思いつつも良い案が浮かびません。それとも根本的に考え方が間違っているのでしょうか?

皆様お忙しいとは思いますがご教示のほど、宜しくお願いいたします<(_ _)>

A 回答 (3件)

コンパイルが通らないのが問題なのですか?


どのように作ったらわからないのが問題なのですか?

あとstatementが別メソッドで使えないとありますが、
使えないほうがよいのでは?
WebでDB接続するってことは1リクエストごとにstatementはクローズしますよね?

この回答への補足

お忙しい中の書き込み、ありがとうございます。

>コンパイルが通らないのが問題なのですか?
>どのように作ったらわからないのが問題なのですか?

最初はコンパイルが通らないのが問題だと思ったのですが、「待てよ。たんに私の作り方がおかしいだけなのか?」と思いなおし、どっちつかずの曖昧な質問になってしまいました。
正直なところ、どのように作ってよいのかわからないのです。

>WebでDB接続するってことは1リクエストごとにstatementはクローズしますよね?

昨日寝る時にいろいろ考えました。そして今chi-kon様の書き込みをみて半ば確信しかけているのですが、もしかしてBeanにてのDB接続(コネクションを使ったりの一通りの作業)ってメソッド一つ一つごとにしなくてはいけないのですが?
昨日私は「DB接続するメソッド」「DBをクローズするメソッド」「DBにStatementオブジェクトを使ってアクセスするメソッド」と作って、サーブレットのほうでそれらを呼び出そうと思っていたのですが(一つのDB処理をする場合、この三つのメソッドを呼び出す)、どうやらこの考えはおかしいようですね。
今日、メソッド一つ一つにDB接続の処理を書いてみます。

もしよければ、昨夜私が考えていたようなやりかたでDB接続は実現できるかどうなのか教えていただけますでしょうか?

今回はお忙しい中、ありがとうございました<(_ _)>

補足日時:2003/07/31 08:28
    • good
    • 0

>今MVCモデルを使って社員データをDBにいれる簡単なプログラムを作っている



という文面を伺う限り、ControllerであるサーブレットがJDBC接続を呼び出すよりは、
ModelであるJavaBeansにJDBCをカプセルしたほうが良いと思います。
理由は、MVCアーキテクチャが生まれた背景にあります。なぜMVCにするのか、考えて見てください。

例えば、JavaBeansを以下のようにします。

public class EmployeeModel {
private String id;
private String name;
// アクセサ省略

public void create(){
Connection conn = ・・・
  ・・・
}
}

という感じです。
Servletは、
メソッド毎にConnection接続を書くことになるので、接続に関する操作をまとめたクラスを一つ作っておくと便利です。

具体的なソースを載せて、

・こう書いたのだけど、コンパイルが通らない。どうして?orどうすれば良いか?

みたいな問いかけをすれば、具体的なアドバイスも集まると思いますよ。
    • good
    • 0
この回答へのお礼

今回はお忙しい中、ありがとうございました。

>メソッド毎にConnection接続を書くことになるので、接続に関する操作をまとめたクラスを一つ作っておくと便利です。

なるほど。
クラス設計は全然できないので、勉強になりました。
プログラムは最近始めたんですけど奥が深いですね…。

>具体的なソースを載せて、
・こう書いたのだけど、コンパイルが通らない。どうして?orどうすれば良いか?
みたいな問いかけをすれば、具体的なアドバイスも集まると思いますよ。

すみません、あんまり具体的じゃない質問で^_^; 次回はソースを載せて、もっと具体的に質問したいと思います。
アドバイス、ありがとうございます。

今回はお忙しい中ご教示くださり、ありがとうございました<(_ _)>

お礼日時:2003/08/01 20:59

#2です。


以下訂正です。すみません。
(誤)
Servletは、
メソッド毎にConnection接続を書くことになるので、

(正)
JavaBeansは、
メソッド毎にConnection接続を書くことになるので、
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!