Problema na conversão da data para o BD

7 respostas
R

Oi,

Estou com problema na conversão da data para gravar no banco.

Vou colocar só a parte referente a data

classe produto
import java.text.SimpleDateFormat;
import java.util.Date;

public class Produto {

	private Date datacad;
        SimpleDateFormat formatDate = new SimpleDateFormat("dd/MM/yyyy");

	public void setDatacad(String datacad) throws ParseException{

	    this.datacad = formatDate.parse(datacad);
	    this.datacad = (new java.sql.Date(this.datacad.getTime()));
		
	}

	public Date getDatacad() {
		return this.datacad;
	}
classe ProdutoDAO
public void adiciona(Produto produto) throws SQLException {
		    try {
		           conecta.getConnection();
		           stm = ConectaBD.getConnection().createStatement();
		           PreparedStatement pstmt = stm.getConnection().prepareStatement(
		             "insert into produtos values (?, ?, ?) ");
		           pstmt.setInt(1, produto.getCodigo());
		           pstmt.setString(2, produto.getDescricao());
		           pstmt.setDate(3, new java.sql.Date(aluno.getDatacad());  
		           pstmt.executeUpdate();
		         } catch (SQLException ex) {
		           JOptionPane.showMessageDialog(null, ex, "Aviso", JOptionPane.INFORMATION_MESSAGE);
		         }
		         stm.close();
		}

na linha do pstmt.setDate(3 ....) está apresentando o seguinte erro:

The constructor Date(Date) is undefined

Ele pede para altera o tipo do retorno do método getDatacad de Date para Long

public long getDatacad() {
return this.datacad;
...

7 Respostas

nel

É simples. O construtor do java.sql.Date não aceita o tipo java.util.Date, somente um tipo Long.
Ai vai uma dica, vê se ajuda você:

Altere:

pstmt.setDate(3, new java.sql.Date(aluno.getDatacad());

Para:

pstmt.setDate(3, new java.sql.Date(aluno.getDatacad().getTime());
wbdsjunior

[edit]removi minha resposta porque ela está errada[edit]

nel

wbdsjunior, eu disse alguma bobagem? Se sim, por favor, me corrija. :slight_smile:

R

Ok, funcionou.

nel

Ótimo, apenas poste [RESOLVIDO] ao lado do seu tópico ok?

Abraços! :slight_smile:

R

Valeu.

esqueci de colocar o Resolvido.

Desculpa pessoal!!!

wbdsjunior

você não disse bobagem, não. tua resposta está correta.

eu que dei uma resposta errada e editei o post para evitar problemas.

abraço.

Criado 4 de novembro de 2009
Ultima resposta 5 de nov. de 2009
Respostas 7
Participantes 3