问题
Oracle数据库中的一个简单表脚本。
CREATE TABLE DBUSER (
USER_ID NUMBER (5) NOT NULL,
USERNAME VARCHAR2 (20) NOT NULL,
CREATED_BY VARCHAR2 (20) NOT NULL,
CREATED_DATE DATE NOT NULL,
PRIMARY KEY ( USER_ID )
)
不知道如何通过JDBC PreparedStatement将当前日期值(例如“ 04/04/2011 ”)插入“ CREATED_DATE ”字段。
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setDate(4, ???);
解
“ preparedStatement.setDate()
”方法接受一个java.sql.Date
参数,因此,您必须从java.util.Date
转换为java.sql.Date
。
例如,创建一个返回当前日期的方法,并将其转换为java.sql.Date
:
private static java.sql.Date getCurrentDate() {
java.util.Date today = new java.util.Date();
return new java.sql.Date(today.getTime());
}
并通过preparedStatement.setDate()
设置返回的日期。
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setDate(4, getCurrentDate());
做完了
翻译自: https://mkyong.com/jdbc/how-to-insert-date-value-in-preparedstatement/