我正在尝试使用准备绑定语句插入一些行。其中一列的类型为TIMESTAMP
。如何将此列的变量与当前纪元时间绑定?
我有下表:
CREATE TABLE orders {
user_id TEXT,
order_time TIMESTAMP,
order_id UUID DEFAULT gen_random_uuid(),
order_details TEXT,
PRIMARY KEY (user_id, order_time DESC, order_id),
FOREIGN KEY (user_id) REFERENCES %s (user_id)
);
我有以下准备语句代码:
String stmt = "INSERT INTO orders " +
"(user_id, order_time, order_details) " +
"VALUES (?, ?, ?);"
PreparedStatement p = connection.prepareStatement(stmt);
现在,我正在尝试将当前纪元时间System.currentTimeMillis()
绑定到此语句中的变量 2。我应该怎么做?
与 SQLTIMESTAMP
对应的 Java 类型很可能是java.sql.Timestamp
。 您可以使用以下方法生成当前时间戳:
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
因此,您准备好的语句代码可能如下所示:
String stmt = "INSERT INTO orders " +
"(user_id, order_time, order_details) " +
"VALUES (?, ?, ?);"
PreparedStatement p = connection.prepareStatement(stmt);
p.setString(1, "Karthik");
p.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
p.setString(3, "here is some order text");