結果セットを使用してOracleからデータを取得し、cachedrowset
. しかし、データベースで日付フィールドを取得して印刷すると、日付のみが印刷されます。私はAPIをチェックし、getDate()
メソッドが戻りjava.sql.date
、の時間がsql.date
0にキャストされていることを知っています。私が呼び出すと、日付と時刻のデータ全体を取得できることをテストしますresultset.getString("datefield")
。cahcedrowset
ここに私のソースコードがあります
CachedRowSet rs = null;
try {
rs = executeQuery("select * from t_web_order_result ");
if (rs != null && rs.next()) {
KKLog.info(rs.getDate("stime"));//2012-04-24,it should be 2012-04-24 09:23:33
KKLog.info(rs.getString("stime"));
}
} catch (SQLException e) {
logErr("queryCheckers Err", e);
} finally {
closeCachedRowset(rs);
}
executeQuery メソッド
CachedRowSet rowset = null;
Connection connection = null;
PreparedStatement statement = null;
ResultSet rs = null;
try {
connection = getConnection();
statement = connection.prepareStatement(sql);
for (int i = 0; i < params.length; i ++) {
statement.setObject(i + 1, params[i]);
}
rs = statement.executeQuery();
rowset = new CachedRowSetImpl();
rowset.populate(rs);
rs.close();
statement.close();
} finally {
//close....
}
return rowset;
ログを印刷するために3つの方法を使用しました
KKLog.info(rs.getDate("stime"));
KKLog.info(rs.getString("stime"));
KKLog.info(rs.getTimestamp("stime"));
ログの内容は
12-11-11 17:06:11 2012-04-24
12-11-11 17:06:11 2012-04-24
12-11-11 17:06:11 2012-04-24 00:00:00.0