본문 바로가기
공부/Trouble Shooting

java.util.Date로 현재 날짜, 시간 DB에 저장하기

by son_i 2023. 9. 6.
728x90
String insertsql = "insert into wifi_history (x, y,make_date)"
					+ " values(?,?,?)";
			
			preparedStatement = connection.prepareStatement(insertsql);
			preparedStatement.setDouble(1, x);
			preparedStatement.setDouble(2, y);
			preparedStatement.setDate(3, (java.sql.Date)now);
			preparedStatement.executeUpdate();

이렇게 해줬는데 

java.lang.ClassCastException: class java.util.Date cannot be cast to class java.sql.Date (java.util.Date is in module java.base of loader 'bootstrap'; java.sql.Date is in module java.sql of loader 'platform')

이런 오류 발생

 

java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
	preparedStatement.setDate(3,sqlDate);

 이렇게 해주면 된다 !

먼저 java.util.Date로 현재시간 받아온 다음에 

java.sql.Date 객체로 만들어주고 그 값을 db에 저장!


그치만 제대로 저장 안 된 것을 확인...

 

날짜 시간 값을 자바코드에서 넣어주는게 아니라

CREATE TABLE wifi_history (
	"id" INTEGER NOT NULL primary key autoincrement ,
	"x" INTEGER NULL,
	"y" INTEGER NULL,
	"make_date" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

DB 테이블을 애초에 값이 만들어지면 현재날짜와 시간을 넣을 수 있게 함.

잘 들어갔다 !

 

근데 나 빼먹고 안 한게 직접 DB 세팅이 아니라 DTO에 getter , setter 이용해서 해야할 것 같은데 ...

728x90