データベース連携アプリケーションの作成の手順を以下に示します。
アプリケーションクラスは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名 */ } }
データベース連携機能を利用する場合は、必ず利用者定義のアプリケーションクラスを使用する必要があります。アプリケーションクラスの設定方法は“15.1.1 Webcoordinatorのセション管理”を参照してください。
データ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>