N-BOX
TOP
新着情報
フォトギャラリー
デジモノ
おべんきょう
はまりもの
ひとりごと
カメラ
パソコン
掲示板
プロフィール
リンク
メール
afer_88_31.gif
リンクシェア アフィリエイト紹介プログラム
PSX_120_60
デル5_120x60
富士通ショッピングサイト WEB MART

JavaBeansを使ったSQL操作2

 前回は、JavaBeansを使ってデータベースの登録処理を行ったのですが、今回はJavaBeansを使ってデータの検索を行います。
 登録処理では、データを受け取る必要がなかったのですが、検索ではSQLを実行させて、その結果を受け取る必要があります。
 今回はJavaBeansからデータを受け取る方法を中心に説明していきたいと思います。

まず、「NextDataBean.java」というファイルを作成し、このファイルにJavaBeansのコードを記述していきたいと思います。
クラス名は「NextDataBean」となります。

データベースを実行させるために必要なDataSourceやSql文は前回と同じで、サーブレットから受け取るようにしています。

Bean内でデータを受け取る方法は前回とほとんど同じで、データソース、SQLはそれぞれ「setds」と、
「setSql」とします。
その上で、今回は検索したデータをサーブレットに返す必要が出てきます。
サーブレットにデータを返す方法はいくつかありますが、サーブレットでは、受け取ったデータを画面上に表示させたり、データベースに登録したりと加工が必要になります。
これが画面上に表示するだけであれば、あらかじめBean内でHTML形式で作成しておいてそのデータを送る方法もありますが、今回はデータのみをやり取りしたいと思います。

今回は、Vectorデータとして、情報をサーブレットに返す方法を使います。


public Vector getResult() {
  Vector tbl = new Vector();
  int num;
  String buf;
  try{

    con = this.ds.getConnection();
    Statement statement = con.createStatement();
    ResultSet result = statement.executeQuery(this.sql);

    if (result.next() == true){
      num = result.getInt("id");
      buf = Integer.toString(num);
      tbl.addElement(buf);
      tbl.addElement(result.getString("type_data"));
      tbl.addElement(result.getString("type_kana"));
      num = result.getInt("word_cnt");
      buf = Integer.toString(num);
      tbl.addElement(buf);
      num = result.getInt("level");
      buf = Integer.toString(num);
      tbl.addElement(buf);
    }
    result.close();

    statement.close();
    con.close();
  }
  catch(SQLException ex){
    ex.printStackTrace();
  }

  return tbl;
}

ここでは、タイピングのデータを取得します。
次のデータを取得するためのSQL文はサーブレット上にあらかじめ作成しておき、ここではそのSQL文で得られる新しいタイピングデータを取得します。
まず、Vectorを定義します。
今回は、「tbl」という名前をつけています。
ここに、順番にデータを登録していきます。
登録には、「addElement」を利用します。
必要なデータをVebtorデータとして登録したら、サーブレットでそのデータを受け取ります。

 サーブレットから、Beansを呼び出して、データを取得していきます。
NextDataBean nextdata = new NextDataBean();
nextdata.setds(ds);
sql = "SELECT * FROM type_table ";
sql = sql + "where level <= " + wlevel;
sql = sql + " order by rand()" ;
nextdata.setSql(sql);
上記は、データを取得するための準備です。
Bean内で必要なデータソース、SQLを登録しています。

Vector ndt = nextdata.getResult();

session.setAttribute("type_cnt",Integer.toString(type_count)); //出題番
buf = (String)ndt.elementAt(0);
session.setAttribute("id",buf);
buf = (String)ndt.elementAt(1);
session.setAttribute("type",buf);
buf = (String)ndt.elementAt(2);
session.setAttribute("kana",buf);
buf = (String)ndt.elementAt(3);
session.setAttribute("wd_cnt",buf);
buf = (String)ndt.elementAt(4);
session.setAttribute("dblevel",buf);
上記では、Beanから受け取ったデータをセッション情報に登録しています。
Vectorに登録したデータは、配列になっていて、0から始まります。
Vectorデータを取り出すのは、「elementAt」で取得できます。
今回は、5つのデータを受け取るので、配列は0〜4まで使っています。
今回は、受け取った情報をセッション情報に登録しています。
 今回はJavaBeansで、データを受け取る方法を紹介しました。
 データベースの処理をBeansで行う事は、よくある事だと思いますので、サーブレットやJSPからBeansを扱う方法は憶えておいた方が良いと思います。 
JAVABeansを使ったSQL操作  UP  システムの再構築