java ucanaccess 数据存储
java ucanaccess data storing
我尝试在 java 的 microsft 访问数据库中将当前数据和时间存储在两列中,但是当我打开我的文件时,没有存储任何数据。我试图打印列,但它打印 "null"。
我该怎么办?
Date date = new Date();
final String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(date.getTime());
final String formattedTime = new SimpleDateFormat("HH:mm:ss").format(date.getTime());
final java.sql.Date sqlDate = java.sql.Date.valueOf(formattedDate);
final java.sql.Time sqlTime = java.sql.Time.valueOf(formattedTime);
...
PreparedStatement ps=con.prepareStatement("insert into Table1(Data) values(?)");
ps.setDate(1,sqlDate);
ps=con.prepareStatement("insert into Table1(Hour) values(?)");
ps.setTime(1,sqlTime);
ps.executeUpdate();
这是打印结果:
ID Name Date Hour
0001 Mary null null
几点:
- 据我所知,将日期和时间保存在数据库的两个单独列中没有意义 table。我会使用一列数据类型
datetime
.
- 类
java.util.Date
、SimpleDateFormat
、java.sql.Date
和 Time
早已过时且设计不佳。最好使用 java.time
,现代 Java 日期和时间 API。与它一起工作要好得多。
想当然地认为日期和时间在不同的列中,您的代码可能如下所示:
LocalDateTime dateTimeNow = LocalDateTime.now(ZoneId.of("Europe/Rome"));
LocalDate dateToday = dateTimeNow.toLocalDate();
LocalTime timeNow = dateTimeNow.toLocalTime();
PreparedStatement ps
= con.prepareStatement("insert into Table1(Data, Hour) values(?, ?)");
ps.setObject(1, dateToday);
ps.setObject(2, timeNow);
ps.executeUpdate();
这将插入包含当天和当前时间的一行。请在我输入 Europe/Rome 的地方使用你想要的时区,因为日期和时间都取决于时区。
Link: Oracle tutorial: Date Time 解释如何使用 java.time
.
我尝试在 java 的 microsft 访问数据库中将当前数据和时间存储在两列中,但是当我打开我的文件时,没有存储任何数据。我试图打印列,但它打印 "null"。 我该怎么办?
Date date = new Date();
final String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(date.getTime());
final String formattedTime = new SimpleDateFormat("HH:mm:ss").format(date.getTime());
final java.sql.Date sqlDate = java.sql.Date.valueOf(formattedDate);
final java.sql.Time sqlTime = java.sql.Time.valueOf(formattedTime);
...
PreparedStatement ps=con.prepareStatement("insert into Table1(Data) values(?)");
ps.setDate(1,sqlDate);
ps=con.prepareStatement("insert into Table1(Hour) values(?)");
ps.setTime(1,sqlTime);
ps.executeUpdate();
这是打印结果:
ID Name Date Hour
0001 Mary null null
几点:
- 据我所知,将日期和时间保存在数据库的两个单独列中没有意义 table。我会使用一列数据类型
datetime
. - 类
java.util.Date
、SimpleDateFormat
、java.sql.Date
和Time
早已过时且设计不佳。最好使用java.time
,现代 Java 日期和时间 API。与它一起工作要好得多。
想当然地认为日期和时间在不同的列中,您的代码可能如下所示:
LocalDateTime dateTimeNow = LocalDateTime.now(ZoneId.of("Europe/Rome"));
LocalDate dateToday = dateTimeNow.toLocalDate();
LocalTime timeNow = dateTimeNow.toLocalTime();
PreparedStatement ps
= con.prepareStatement("insert into Table1(Data, Hour) values(?, ?)");
ps.setObject(1, dateToday);
ps.setObject(2, timeNow);
ps.executeUpdate();
这将插入包含当天和当前时间的一行。请在我输入 Europe/Rome 的地方使用你想要的时区,因为日期和时间都取决于时区。
Link: Oracle tutorial: Date Time 解释如何使用 java.time
.