Apcoordinator ユーザーズガイド
目次 前ページ次ページ

第3部 Webアプリケーションの開発> 第17章 データベースとの連携

17.2 データベース連携のアプリケーション

データベース連携アプリケーションの作成の手順を以下に示します。
・アプリケーションクラスの設定
アプリケーションクラスはDBApplicationProfileクラスを継承して作成します。

public class MyApplication extends com.fujitsu.uji.database.DBApplicationProfile
{
}

registDBConnectionInfoメソッドを使って、接続情報を登録します。 データベース接続情報の登録はinitDBApplicationメソッドの中で行います。

public class MyApplication extends com.fujitsu.uji.database.DBApplicationProfile {

    public MyApplication() {
    }

    public void initDBApplication(){
        // JDBC1.0使用の場合
        registDBConnectionInfo("connection1",       // 接続名
                "username",                         // ユーザ名
                "password",                         // パスワード
                "fujitsu.symfoware.jdbc.RDADriver", // JDBCドライバ
                "jdbc:symforda://host:2002/db_env");// 接続先URL

        /*
        // JDBC2.0使用の場合
        registDBConnectionInfo("connection1",       // 接続名
                "username",                         // ユーザ名
                "password",                         // パスワード
                "com.fujitsu.symfoware.jdbc2.jndisp.SYMContextFactory",
                                                    // JNDIファクトリ
                "SYM://server",                     // 接続先URL
                "jdbc/Symfoware");                  // JNDI名
        */
    }
}

データベース連携機能を利用する場合は、必ず利用者定義のアプリケーションクラスを使用する必要があります。 アプリケーションクラスの設定方法はWebcoordinatorのセション管理を参照してください。
・データBeanの設定
データBeanのプロパティとして、データベース連携クラスを作成します。

import com.fujitsu.uji.database.*;

public class MyBean extends com.fujitsu.uji.DataBean
{
    protected DBTableView dbView;

    public DBTableView getDbView() {
        return dbView;
    }
    public void setDbView(DBTableView dbView) {
        this.dbView = dbView;
    }
}

データベース連携クラスに、アプリケーションクラスから取得したコネクションと、 検索方法を指定します。

    public void startup(DispatchContext context) {
        DBApplicationProfile app = (DBApplicationProfile)context.getApplicationProfile();
        DBConnectionInfo conn = app.getDBConnectionInfo("connection1");
        DBTableView dbView = new DBTableView(conn);
        try {
            dbView.query("SELECT * FROM TABLE");
        }catch(SQLException e) {
        }
        MyBean bean = new MyBean();
        bean.setDbView(dbView);
        context.setResponseBean("body", bean);
    }

・入出力ページの作成
コンポーネントタグを使って入出力ページを作成します。

<uji:useBean id="body" />
<FORM>

<uji:tableView bean="body" property="dbView" />

...
</FORM>

色や入力フィールドの設定は、コンポーネントタグのアトリビュートで設定します。

<uji:tableView bean="body" property="dbView"
        headerBackground="yellow"
        dataEditable="false;false;false;false;true"
        />

・データの更新
入力したデータをデータベースに反映する場合は、データベース連携クラスのupdateメソッドを使用します。

        DBTableView dbView = dataBean.getDbView();
        try{
                dbView.update();
        }catch(SQLException e){
        }

行の追加や削除も、データベース連携クラスで指定して、最後にupdateメソッドで実行します。

        // 追加
        dbView.addRow(1);
        ...  // 画面に表示して入力

        // 削除
        dbView.removeRow(4);
        // データベースに反映
        try{
                dbView.update();
        }catch(SQLException e){
        }

・接続のコントロール
コネクションのプール数はWebアプリケーション環境定義ファイル(web.xml)で指定します。

<web-app>
  <context-param>
    <param-name>uji.database.connection.maxpoolsize</param-name>
    <param-value>30</param-value>
  </context-param>
  <context-param>
    <param-name>factory</param-name>
    <param-value>MyFactory</param-value>
  </context-param>
  <taglib>
    <taglib-uri>uji-taglib</taglib-uri>
    <taglib-location>/WEB-INF/ujiall.tld</taglib-location>
  </taglib>
</web-app>


目次 前ページ次ページ

All Rights Reserved, Copyright © 富士通株式会社 2000-2005