Olá, bom dia! Tudo bem?
Estou com um erro ao salvar a data no meu banco de dados. Estou desenvolvendo uma aplicação para agendamento de consultas.
Erro: mysqldatatruncation data truncation: incorrect date value: ´d´de´mmm’de’y’ for colum dbconsultorio: ´agendamento´, data at row 1
Código:
DateFormat df = new SimpleDateFormat(“YYYY-MM-DD”);
DefaultTableModel modelo = (DefaultTableModel) tableAgendamentos.getModel();
//A linha abaixo seleciona os objetos da tabela //Object vem do tipo de Objeto que foi escolhido na tabela
Object[] dados = {txtIDAgenda.getText(),
txtNomeAgenda.getText(),
txtEmailAgenda.getText(),
ComboBoxProcedimentos.getSelectedItem(),
ComboBoxSexo.getSelectedItem(),
txtTelefone.getText(),
txtHoraAgenda.getText(),
df.format(txtDataDoAgendamento.getDate()),
txtValorAgenda.getText(),
txtObservacoesAgenda.getText()};
modelo.addRow(dados);
limparAgendamento();
A aplicação está sendo desenvolvida na IDE Netbeans e estou utilizando o Xampp como genreciador de banco de dados pHpMyAdmin.
A mensagem de erro diz que o valor que você está tentando passar para a coluna agendamento não é uma data válida. Provavelmente o formato está incorreto, seja para a função format, seja ao manda pro banco.
Confira o que
txtDataDoAgendamento.getDate()
está retornando, pra ver se é o caso. Veja se é um valor válido para o df.format()
Abraço.
Posta o código onde você está salva essa data.
Classe Agendamento
package Agendamento;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
-
@author JANDERSON
*/
public class Agendamento {
private int id;
private String nome;
private String email;
private String procedimentos;
private String telefone;
private String sexo;
private String hora;
private Date data;
private String valor;
private String observacoes;
public Agendamento(String data) {
try {
this.data = new SimpleDateFormat("dd/MM/yyyy").parse(data);
} catch (ParseException ex) {
Logger.getLogger(Agendamento.class.getName()).log(Level.SEVERE, null, ex);
}
}
Agendamento() {
throw new UnsupportedOperationException(“Not supported yet.”); // Generated from nbfs://nbhost/SystemFileSystem/Templates/Classes/Code/GeneratedMethodBody
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getProcedimentos() {
return procedimentos;
}
public void setProcedimentos(String procedimentos) {
this.procedimentos = procedimentos;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getHora() {
return hora;
}
public void setHora(String hora) {
this.hora = hora;
}
public Date getData() {
return data;
}
public void setData(Date data) {
this.data = data;
}
public String getValor() {
return valor;
}
public void setValor(String valor) {
this.valor = valor;
}
public String getObservacoes() {
return observacoes;
}
public void setObservacoes(String observacoes) {
this.observacoes = observacoes;
}
}
Botão Salvar
try {
Cadastrar();
} catch (Exception ex) {
// Logger.getLogger(CadClientes.class.getName()).log(Level.SEVERE, null, ex);
}
}
private boolean validaCamposObrigatorios() {
return (txtNomeAgenda.getText().equals("")
|| txtEmailAgenda.getText().equals(""));
}
private void Cadastrar() throws Exception {
if (validaCamposObrigatorios()) {
JOptionPane.showMessageDialog(null, "Preencha todos os campos antes de gravar!!");
} else {
Agendamento agendamento = new Agendamento(data);
AgendamentoDao agendamentodao = new AgendamentoDao();
agendamento.setNome(txtNomeAgenda.getText());
agendamento.setEmail(txtEmailAgenda.getText());
agendamento.setProcedimentos((String) ComboBoxProcedimentos.getSelectedItem());
agendamento.setTelefone(txtTelefone.getText());
agendamento.setSexo((String) ComboBoxSexo.getSelectedItem());
agendamento.setHora(txtHoraAgenda.getText());
agendamento.setData(txtDataDoAgendamento.getDate());
agendamento.setValor(txtValorAgenda.getText());
agendamento.setObservacoes(txtObservacoesAgenda.getText());
agendamentodao.adicionar(agendamento);
// Limpe os campos de texto após a atualização
txtNomeAgenda.setText("");
txtEmailAgenda.setText("");
ComboBoxProcedimentos.setSelectedItem("");
txtTelefone.setText("");
ComboBoxSexo.setSelectedItem("");
txtHoraAgenda.setText("");
txtDataDoAgendamento.setDateFormatString("");
txtValorAgenda.setText("");
txtObservacoesAgenda.setText("");
}
Consegui resolver! Eu coloquei o construtor vazio. A unica coisa que ficou nivertida no meu banco, foi a data mesmo. Que ficou 2024-07-10 ao inves de 10-07-2024.
//construtor
public Agendamento() {
}