ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

18.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名
        */
    }
}

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

データBeanの設定

データBeanのプロパティとして、データベース連携クラスを作成します。

import com.fujitsu.uji.database.*;
import com.fujitsu.uji.DataBean;

public class MyBean extends 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 xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
                          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
      version="2.4">
  <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>
  <jsp-config>
    <taglib>
      <taglib-uri>uji-taglib</taglib-uri>
      <taglib-location>/WEB-INF/ujiall.tld</taglib-location>
    </taglib>
  </jsp-config>
</web-app>