Проблема
Простой табличный скрипт в базе данных 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 ) )
Понятия не имею, как вставить текущее значение даты, например” 04/04/2011 “в поле ” CREATED_DATE “, через JDBC PreparedStatement.
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. Дата
в java.sql. Дата
.
Например, создайте метод для возврата текущей даты и преобразуйте его java.sql. Дата
:
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/”