Gostaria de uma ajuda. Fiz com uma classe com um construtor com parametro date.
Quando eu coloco para persistir no banco de dados(mysql) persiste a data 1970-01-01. Estou usando o JDBC.
na minha main esta assim
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.Date;
import models.Reserva;
public class teste1 {
public static void main(String[] args) {
ConnectionFactory factory = new ConnectionFactory();
Connection connection = factory.recuperarConexao();
ReservaDao reservadao = new ReservaDao(connection);
Reserva reserva1 = new Reserva(null,new Date(1988-01-01), null, new BigDecimal("800"), "boleto");
reservadao.salvar(reserva1);
}
}
qual formato correto para Date é esse mesmo 1988-01-01. no caso yyyy-mm-dd. ?
minha dao
ackage controller;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import models.Reserva;
public class ReservaDao {
private Connection connection;
public ReservaDao(Connection connection) {
this.connection = connection;
}
public void salvar(Reserva reserva) {
try {
String sql = "INSERT INTO RESERVAS (DATAENTRADA,DATASAIDA,VALOR,FORMADEPAGAMENTO) VALUES (?, ?, ?, ?)";
try (PreparedStatement pstm = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
pstm.setDate(1, reserva.getDataentrada());
pstm.setDate(2, reserva.getDatasaida());
pstm.setBigDecimal(3, reserva.getValor());
pstm.setString(4, reserva.getFormadepagamento());
pstm.execute();
try (ResultSet rst = pstm.getGeneratedKeys()) {
while (rst.next()) {
reserva.setId(rst.getInt(1));
}
}
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
reserva
public class Reserva {
private Integer id;
private Date dataentrada;
private Date datasaida;
private BigDecimal valor;
private String formadepagamento;
public Reserva(Integer id, String formadepagamento) {
super();
this.id = id;
this.formadepagamento = formadepagamento;
}
public Reserva(Date dataentrada, Date datasaida, BigDecimal valor, String formadepagamento) {
super();
//this.id = id;
this.dataentrada = dataentrada;
this.datasaida = datasaida;
this.valor = valor;
this.formadepagamento = formadepagamento;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Date getDataentrada() {
return dataentrada;
}
public void setDataentrada(Date dataentrada) {
this.dataentrada = dataentrada;
}
public Date getDatasaida() {
return datasaida;
}
public void setDatasaida(Date datasaida) {
this.datasaida = datasaida;
}
public BigDecimal getValor() {
return valor;
}
public void setValor(BigDecimal valor) {
this.valor = valor;
}
public String getFormadepagamento() {
return formadepagamento;
}
public void setFormadepagamento(String formadepagamento) {
this.formadepagamento = formadepagamento;
}
}