Apcoordinator ユーザーズガイド |
目次 |
第3部 Webアプリケーションの開発 | > 第17章 データベースとの連携 |
registDBConnectionInfoメソッドを使って、接続情報を登録します。 データベース接続情報の登録はinitDBApplicationメソッドの中で行います。
public class MyApplication extends com.fujitsu.uji.database.DBApplicationProfile { }
データベース連携機能を利用する場合は、必ず利用者定義のアプリケーションクラスを使用する必要があります。 アプリケーションクラスの設定方法はWebcoordinatorのセション管理を参照してください。
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名 */ } }
データベース連携クラスに、アプリケーションクラスから取得したコネクションと、 検索方法を指定します。
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){ }
// 追加 dbView.addRow(1); ... // 画面に表示して入力 // 削除 dbView.removeRow(4); // データベースに反映 try{ dbView.update(); }catch(SQLException e){ }
<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>
目次 |