[英]How Do I Insert system time Into Ms Access Using Java?
我刚刚使用Java(Netbeans)创建了一个简单的学生注册表。 它有几列可以输入学生的数据,例如regNo,姓名,地址等,还有一个Insert按钮,可以将数据插入到MS Access创建的表格中。它可以正常工作,但是我需要存储用户填写的时间该表格意味着用户填写该表格时,应该捕获系统时间并将其存储在表格中的每个条目(每个元组)中。 所以我想知道如何获取系统时间并将其插入MS Access数据库中,我找到了以下代码,但是我不知道如何将代码捕获的时间传递给数据库,我已经为在数据库中输入时间。
Calendar cal = Calendar.getInstance();
java.util.Date currentTime = cal.getTime();
这是我编写的将时间传递到表的代码.....
ps = con.prepareStatement("insert into RegInfo(RegNo,StudName,Address,"
+ "Telephone,Stream,RegDate,Time) values(?,?,?,?,?,?,?)");
ps.setLong(6,currentTime.getTime());
我使用了您的代码Razvan。 它工作得很好,但是没有将Time插入表中……(“ System.out.println”工作正常).....
final String t1 = "hh:mm:ss";
final DateFormat df = new SimpleDateFormat(t1);
final String formattedTime = df.format(new java.util.Date());
ps.setString(7, formattedTime);
System.out.println("formattedTime "+formattedTime);
您可以在INSERT查询中简单地使用Now()
函数:
try (Connection conn = DriverManager.getConnection(connStr)) {
String sql;
sql = "INSERT INTO RegInfo (RegNo, StudName, Address, Telephone, Stream, RegDateTime) " +
"VALUES (?, ?, ?, ?, ?, Now())";
try (PreparedStatement ps = conn.prepareStatement(sql)) {
ps.setInt(1, 3);
ps.setString(2, "Gord");
ps.setString(3, "123 Main St");
ps.setString(4, "416-555-1212");
ps.setString(5, "Standard");
ps.executeUpdate();
}
} catch (Exception e) {
e.printStackTrace(System.err);
}
这将对JDBC-ODBC(已过时,已从Java 8中删除)和UCanAccess ( 此处提供更多信息)都适用。
请注意,Access中的Date / Time列始终同时具有Date和Time组件,因此您无需为RegDate
和Time
维护单独的列。
通用形式可以是:
final String DB_DATE_FORMAT = "MM/dd/YYYY"; //not sure about this, modify to fit your Access date format
final SimpleDateFormat formatter = new SimpleDateFormat(DB_DATE_FORMAT);
final String formattedDate = formatter.format(new Date());
您的时间不是插入语句的第一列,而是第6列,因此只需将ps参数更改为ps.setLong(6,currentTime.getTime());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.