Рубрики
Без рубрики

Вставить значение даты в Подготовленное утверждение

– Вставить значение даты в подготовленное утверждение

Проблема

Простой табличный скрипт в базе данных 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/”