データベース連携アプリケーションの作成の手順を以下に示します。
アプリケーションクラスは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のプロパティとして、データベース連携クラスを作成します。
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>