動的SQL文を使用するには、JDBCのprepareStatement()メソッドを使用します。
NXJ jBizからこのメソッドを利用するにはまず、フォームで使用している接続を獲得します。
getConnection()メソッドでプロジェクトに定義してあるConnectionsのデータベース接続を指定します。
このメソッドから戻されるNXJDataConnectionのgetJdbcConnection()メソッドでJDBCのConnectionを獲得します。
その後は、通常のJDBCを使用したデータベースアクセスをコーディングします。
以下はコーディング例の抜粋です。
使用しているテーブル構成
テーブル名 JdbcAccessForm
フィールド名 f1 データ型 numeric サイズ 5
フィールド名 f2 データ型 charactor サイズ 32
// 変数定義
NXJDataConnection Nconn1;
Connection conn1;
String sel1;
PreparedStatement psql;
ResultSet res1;
// ダミー条件
int num1 = 1;
// デザインセンターに定義してある Connection ds82_e を獲得
Nconn1 = session.getConnection("ds82_e");
// JDBC Connection を獲得
conn1 = Nconn1.getJdbcConnection();
// 検索 SQL文を作成
sel1 = "select f1, f2 from JdbcAccessForm ";
// 検索条件
if (num1 == 1) {
sel1 = sel1 + "where f1 = ?";
}
else {
sel1 = sel1 + "where f2 = ?";
}
// PreparedStatement
psql = conn1.prepareStatement(sel1);
// 検索条件を 画面フィールド(w1, w2)からセット
if (num1 == 1) {
psql.setInt(1,w1);
}
else {
psql.setString(1,w1);
}
// 検索を実行
res1 = psql.executeQuery();
// 検索したデータを画面フィールド(ans1, ans2)にセット
while(res1.next()) {
ans1 = res1.getInt(1);
ans2 = res1.getString(2);
JdbcAccessForm.updateCurrentRecord();
}
// Close
psql.close();
conn1.close();
|