Pessoal, estou tendo um problema ao tentar gravar uma data no formato String no banco MySQL, pois quando persisto uma data, a mesma é gravada com os valores alterados, exemplo: 01/01/2001 grava 06/06/2023. Alguém tem alguma exemplo para mim ajudar.
Qual valor chega no DAO? Você usou o Debug?
Não usei o Debug.
Ele entra no Dao assim:
//Configurando a data
str = jFDataNasc.getText();
Date data = (Date)formatador.parse(str);
p1.setData(data);
//Fim da configuração da data
Dê uma olhada no teu formatador. Para retornar ‘06/06/2023’ ele deve estar usando ‘yyyy/MM/dd’ em vez de 'dd/MM/yyyy’
Segue um exemplo:
[code]
SimpleDateFormat formatador = new SimpleDateFormat(“dd/MM/yyyy”);
str = jFDataNasc.getText();
Date data = (Date)formatador.parse(str);
p1.setData(data); [/code]
Valeu pessoal, consegui resolver. Segue abaixo o trecho do código:
//Classe Model
//Criei dois métodos gets para apresentar a data em dois formatos
//Retorna data no formatado de String
public String getDataFormatada() {
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
String dataFormat = formatador.format(data);
return dataFormat;
}
//Retorna data no formatado de Date do MySQL
public Date getData() {
return data;
}
//Seta um valor de tipo Date (java.util.Date) para o banco
public void setData(Date data) {
this.data = data;
}
//Classe Dao
public void adicionar(Paciente paciente) throws SQLException, ParseException{
String sql = "INSERT INTO paciente(nome, idade, endereco, data, sexo)"
+ "VALUES(?, ?, ?, ?, ?)";
PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, paciente.getNome());
stmt.setString(2, paciente.getIdade());
stmt.setString(3, paciente.getEndereco());
//Armazena no banco da data no formato Date(java.sql.Date)
stmt.setDate(4, new java.sql.Date(paciente.getData().getTime()));
stmt.setString(5, paciente.getSexo());
stmt.execute();
stmt.close();
}