1

データベースに時間を追加しようとしていsqliteます。質問する前に、以下にいくつかの情報を示します。

  1. の時刻フィールドsqliteは DateTime 型です。
  2. 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では日付であってはなりません。皆さん、いくつかの解決策で私をサポートしてください。

4

0 に答える 0