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

Вставьте значение метки времени в PreparedStatement

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

Автор оригинала: mkyong.

Проблема

Простой табличный скрипт в базе данных 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 14:45:04 ” в поле ” CREATED_DATE “, через JDBC PreparedStatement.

String insertTableSQL = "INSERT INTO DBUSER"
		+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
		+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,???);

Решение

Создайте метод для возврата текущей метки времени ( java.sql. Отметка времени ) вот так:

private static java.sql.Timestamp getCurrentTimeStamp() {

	java.util.Date today = new java.util.Date();
	return new java.sql.Timestamp(today.getTime());

}

И установите метку времени с помощью PreparedStatement.settimestamp() .

String insertTableSQL = "INSERT INTO DBUSER"
	+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
	+ "(?,?,?,?)";
preparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setTimestamp(4,getCurrentTimeStamp());

Оригинал: “https://mkyong.com/jdbc/how-to-insert-timestamp-value-in-preparedstatement/”