Умные люди, объясните мне пожалуйста, почему при загрузке объекта из базы дата подтягивается без времени? Пробовал менять тип в бд с DATE на TIMESTAMP, но информация по времени все равно не сохраняется (только день-месяц-год). Вроде в обоих случаях unix-время, но подружить не получилось. Буду признателен за ответ.
Employee{id=1, name='Ivan', occupation='Developer', salary=1000, joinDate=Wed Jul 19 08:08:04 MSK 2023}
Employee{id=1, name='Ivan', occupation='Developer', salary=1000, joinDate=Wed Jul 19 00:00:00 MSK 2023}
Вот код сохранения/загрузки объекта из базы
public void save (Connection connection) throws SQLException {
connection.setAutoCommit(false);
String sql = "INSERT INTO employee (id, name, occupation, salary, join_date) VALUES (?,?,?,?,?)";
try(PreparedStatement statement = connection.prepareStatement(sql)){
statement.setInt(1, id);
statement.setString(2, name);
statement.setString(3, occupation);
statement.setInt(4, salary);
statement.setDate(5, new java.sql.Date(joinDate.getTime()));
statement.execute();
connection.commit();
}catch (Exception e){
connection.rollback();
}finally {
connection.setAutoCommit(true);
}
}
public static Employee load(Connection connection, int employeeId) throws SQLException {
String sql = "SELECT * FROM employee WHERE id=?";
try (PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setInt(1, employeeId);
ResultSet result = statement.executeQuery();
result.next();
Integer id = result.getInt(1);
String name = result.getString(2);
String occupation = result.getString(3);
Integer salary = result.getInt(4);
Date joinDate = new Date(result.getDate(5).getTime());
return new Employee(id, name, occupation, salary, joinDate);
}
}