如何使用Java将系统时间插入Ms Access?

时间:2015-05-14 21:45:59

标签: java ms-access jdbc

我刚刚使用Java(Netbeans)创建了一个简单的学生注册表。它有几个栏目可以进入学生的行列。 regNo,name,address等数据和一个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。它工作得非常好,但它没有将时间插入表中......(" 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);

3 个答案:

答案 0 :(得分:1)

您可以在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(更多信息here)。

请注意,Access中的日期/时间列始终同时包含日期和时间组件,因此您无需为RegDateTime维护单独的列。

答案 1 :(得分:0)

通用表格可以是:

    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());

答案 2 :(得分:0)

你的时间不是insert语句中的第一列,它是6号,所以只需将ps参数更改为 ps.setLong(6,currentTime.getTime());