データベースに時間を追加しようとしていsqlite
ます。質問する前に、以下にいくつかの情報を示します。
- の時刻フィールド
sqlite
は DateTime 型です。 - Bean DTO クラスでは、getter と setter が時間の Date 型に対応します。
だから、これは時間の私の形式です:
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
これは、データベースに追加する情報を送信する方法です。
edto.setTime(formatter.parse(startHrs.getText() + ":" + startMin.getText()));
sqlite では次のようになります。
40320000
ただし、JTable にデータベースからのデータを入力したい場合、時間は次のように表示されます1970-01-01
。これではなく、実際の時間を表示したいのです。他のタイプでは、次のように処理しました。
private void setDTOField(Field dtoField, BaseDTO dto, ResultSet rs) throws IllegalAccessException, IllegalArgumentException, SecurityException, IOException, InstantiationException {
dtoField.setAccessible(true);
try {
if (byte[].class.equals(dtoField.getType())) {
String mimedString = rs.getString(getDBColumnName(dtoField.getName()));
if (mimedString != null) {
byte[] compressedBytes = convertBASE64StringToBytes(mimedString);
dtoField.set(dto, compressedBytes);
}
} else if (Date.class.equals(dtoField.getType())) {
dtoField.set(dto, rs.getDate(getDBColumnName(dtoField.getName())));
}
じゃあどうしよう、時間が分からない。日付は問題ありませんでしたが、時間はわかりません。何を変更できますか?簡単に修正されますか?おそらくデータベースでは文字列である必要があり、Beanでは日付であってはなりません。皆さん、いくつかの解決策で私をサポートしてください。