Probblema na classe DAO

10 respostas
R

Olá Pessoal,

Segue abaixo a classe DAO

Connection conn = ConnectionManager.getInstance().getConnection();

String sql = insert into cliente(id_cliente,cliente, endereco, numero, bairro,data)values(?,?,?,?,?,?);;

PreparedStatement pstm = conn.prepareStatement(sql);
pstm.setInt(1, cliente.getId_cliente());
        pstm.setString(2, cliente.getCliente());
        pstm.setString(3,cliente.getEndereco());
        pstm.setInt(4, cliente.getNumero());
        [b]pstm.setDate(5,cliente.getData()); // erro - está com erro nos argumentos do setDate.[/b]

Alguém pode me ajudar!!!

10 Respostas

SandroSoftwares

que tal usar:

pstm.setString(5,cliente.getData());
viniciusfaleiro

Para voce poder fazer isso vc tem que garantir duas coisas… Faz muito tempo que nao mecho com aplicacoes assim mais… mas vamos la ver se eu lembro:

  • Sua data, se nao me engano, precisa ser do tipo java.sql.Date e nao java.util.Date… ou Vice-e-versa
  • O campo da sua tabela precisa ser do tipo Date.
SandroSoftwares

eu postei o exemplo acima pois aqui utilizo:

na classe logica utilizo o tipo String para data
na classe dao utilizo o retorno da string da classe logica

e no programa faço o seguinte:

Salvo no formato: ano + “/” + mes + “/” + dia

SandroSoftwares

sendo que no meu banco o campo está como Date.

diogoprosoft

Você terá que tratar à data como string pegar o valor que vc quer e depois converter para sql.Date para poder enviar ao banco que é do tipo Date.

R_chieck

Concordo com o que lhe falaram. Recomendo usar java.sql.Date e no banco tbm como Date. Sempre usei assim e nunca tive problemas.
Caso esteja usando util.Date faça a converssao, passe esta data para long e depois cm esse long consegue criar uma Data tipo sql.

wagnerfrancisco
pstm.setDate(5, new java.sql.Date(cliente.getData().getTime) );

Se sua data puder ser nula, faça as devidas consistências!

R

Bom dia…

Eu estou com uma duvida, e se eu estiver usando jDateChooser para pegar a data, como devo prosseguir com o codigo??

Obrigado

E

Ricardo Lara, tb estou com a mesma dúvida que vc, vamos aguardar…

R

Olá edenilson777,

Eu conseguiu solucionar o problema dessa forma, segue o codigo

pstm.setDate(8, new java.sql.Date(usuario.getDATAVENCIMENTO().getTime()));

Espero que te ajude, qualquer duvida me contate

Criado 13 de maio de 2011
Ultima resposta 10 de jul. de 2012
Respostas 10
Participantes 8