Salve desenvolvedores,
Eu nessa minha caminhada para aprender estou esbarrando em alguns obstaculos ainda.
Hoje dando andamento no projetinho (de estudos), me deparei com o seguinte problema: Estou inserindo um date no MySql, debugando vejo que a data está indo no formato correto (yyyy-MM-dd), mas no insert alguma coisa no banco (eu acho) dá uma viajada e me retorna um erro com uma data nada a ver.
Segue o trecho do código;
//tratamento da data.
public void actionPerformed(ActionEvent e){
if(e.getSource() == btnFechar){
this.dispose();
} else {
ConexaoMySQL conexao = new ConexaoMySQL();
Calendar c = new GregorianCalendar();
c.setTime(dtNascimento.getDate());
java.sql.Date d = new java.sql.Date(c.getTimeInMillis());
conexao.Insert(txtNome.getText(), txtSobrenome.getText(),d);
this.dispose();
}
}
//insert no banco
public void Insert(String nome, String sobrenome, Date dtNascimento){
System.out.println("Inserindo dados no banco!!!");
getConexaoMySQL();
try {
Statement stm = connection.createStatement();
//String sql = ("INSERT INTO pessoas (nome, sobrenome, dtNasc)VALUES ('"+nome+"','"+sobrenome+"',"+"CURDATE()"+")");
String sql = ("INSERT INTO pessoas (nome, sobrenome, dtNasc)VALUES ('"+nome+"','"+sobrenome+"',"+dtNascimento+")");
stm.executeUpdate(sql);
System.out.println("Dados no banco!!!");
} catch (SQLException s) {
System.out.println("SQL nao executou " + s);
}
}
o erro retornado é:
SQL nao executou com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect date value: ‘1983’ for column ‘dtNasc’ at row 1
Não sei qual caminho seguir, pois estou achando que o problema está em alguma configuração que eu fiz errada no bando, mas tb nao tenho certeza.
Valheu aí pessoal.