2010年7月10日土曜日

JSFとResultSet

JSFのdataTableで、FirebirdのデータをJDBCを介してResultSetを取得して内容を読もうとして、

Not yet implemented.

とエラーが出た。ResultSetを返す部分は、
Statement s = conn.createStatement();
String sql = "select * from t";
rs = s.executeQuery(sql);

これでは、原因がさっぱりわからなかったので、
とりあえず、メジャーなMySQLとPostgreSQLで同じことを試した。
MySQLは、上記のコードでOK。

PostgreSQLは、以下のエラーが出た。

Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.

原因が掴めたので、以下のようにすると、PostgreSQLもFirebirdも動いた。

Statement s = conn.createStatement(
  ResultSet.TYPE_SCROLL_SENSITIVE, 
  ResultSet.CONCUR_READ_ONLY);
String sql = "select * from t";
rs = s.executeQuery(sql);

0 コメント: