| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/01/2012 22:14:38
|
andre_rjp
Thread.start()
![[Avatar]](/images/avatar/032124fffd055f950112c7fdb493a55a.png)
Membro desde: 21/10/2011 05:58:13
Mensagens: 33
Localização: Rio de Janeiro
Offline
|
Bom dia!
Pessoal to com um código aqui, que pega por um formulario a data de nascimento de determinado usuario, porém quando salva no meu banco de dados, está salvando com a data do dia e não a data que o usuário insere, poderiam me auxiliar e informar onde estou errando no código, desde já agradeço, coloquei aqui no java basico pois achei que não era um erro da Servlet que criei, segue os códigos:
método adiciona da Classe ContatoDAO.
aqui a Servlet:
Estou colocando a data: 02/04/1987 mas sempre salva no banco a data do dia atual.
|
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/01/2012 22:25:40
|
abmpicoli
JavaTeenager
Membro desde: 27/07/2011 09:11:25
Mensagens: 164
Offline
|
Carinha, vê se o campo no banco de dados não está definido como Timestamp. Pelo que estou vendo, o seu campo no banco de dados deveria ser do tipo DATETIME, ou algo similar.
Não sei qual banco você está usando pra te passar mais detalhes, mas campo tipo TIMESTAMP normalmente significa enfiar a data corrente do banco em um insert.
This message was edited 1 time. Last update was at 30/01/2012 22:27:08
|
.x. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/01/2012 22:32:51
|
andre_rjp
Thread.start()
![[Avatar]](/images/avatar/032124fffd055f950112c7fdb493a55a.png)
Membro desde: 21/10/2011 05:58:13
Mensagens: 33
Localização: Rio de Janeiro
Offline
|
então amigo, eu to usando o PostgreSQL, e o campo está como date
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 00:15:37
|
michelorth_92
JavaEvangelist
![[Avatar]](/images/avatar/e309218ec8ac3cd832f7e71eb7b31b53.jpg)
Membro desde: 11/10/2011 10:23:41
Mensagens: 328
Offline
|
stmt.setDate(6,new Date(contato.getDataNascimento().getTimeInMillis()));
voce esta setando nesta linha a data atual
faça só assim
stmt.setDate(contato.getDataNascimento());
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 05:56:23
|
abmpicoli
JavaTeenager
Membro desde: 27/07/2011 09:11:25
Mensagens: 164
Offline
|
Carinha, seu código do jeito que está funciona na questão de datas , porque testei algo similar.
E o resultado foi o esperado. Data no formato ano-mes-dia igual a data parseada.
Então, os suspeitos passaram a ser outros:
1) Será que o seu bean Contato.java não tá com alguma bobagem nos getters e setters?
2) Será que tem alguma trigger no banco?
3) Será que o create table da tabela tem alguma especificação de valor default que não está sendo usada?
Passa o create table da tabela pra gente ver...
This message was edited 1 time. Last update was at 31/01/2012 05:58:56
|
.x. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 09:50:55
|
andre_rjp
Thread.start()
![[Avatar]](/images/avatar/032124fffd055f950112c7fdb493a55a.png)
Membro desde: 21/10/2011 05:58:13
Mensagens: 33
Localização: Rio de Janeiro
Offline
|
michelorth_92 wrote: stmt.setDate(6,new Date(contato.getDataNascimento().getTimeInMillis()));
voce esta setando nesta linha a data atual
faça só assim
stmt.setDate(contato.getDataNascimento());
Então deixa eu ver se entendi, no meu ContatoDAO
tem que ficar assim:
Mas se fizer isso nem deixa compilar, o Date ali é de java.sql.Date.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 09:56:43
|
andre_rjp
Thread.start()
![[Avatar]](/images/avatar/032124fffd055f950112c7fdb493a55a.png)
Membro desde: 21/10/2011 05:58:13
Mensagens: 33
Localização: Rio de Janeiro
Offline
|
abmpicoli wrote:Carinha, seu código do jeito que está funciona na questão de datas , porque testei algo similar.
E o resultado foi o esperado. Data no formato ano-mes-dia igual a data parseada.
Então, os suspeitos passaram a ser outros:
1) Será que o seu bean Contato.java não tá com alguma bobagem nos getters e setters?
2) Será que tem alguma trigger no banco?
3) Será que o create table da tabela tem alguma especificação de valor default que não está sendo usada?
Passa o create table da tabela pra gente ver...
No banco já não saco muito... nem sei o que seria esse trigger que você mencionou, mas segue meu Contato.java e o create table da tabela:
os getters e setters deixei o lombok criar, mas o getDataNascimento retorna Calendar.
e aqui segue o create da tabela:
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 14:12:22
|
abmpicoli
JavaTeenager
Membro desde: 27/07/2011 09:11:25
Mensagens: 164
Offline
|
Carinha, experimenta tirar a diretiva do lombok, e crie os getters e setters "na unha" e vê o que dá. Essa biblioteca é experimental, tá ainda na versão 0.10, e pode muito bem estar com pau.
Triggers são uma coisa do capeta, que colocam em bancos de dados. Basicamente eles colocam algumas ações antes ou depois de inserts. Tipicamente são criados por DBAs com um comando do tipo "CREATE TRIGGER".
Ah, e mete um clean no projeto: esse lombok mexe com compilação, e pode ser que isso deixe o eclipse meio doido, com .class velhos.
This message was edited 3 times. Last update was at 31/01/2012 14:16:57
|
.x. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 14:29:35
|
andre_rjp
Thread.start()
![[Avatar]](/images/avatar/032124fffd055f950112c7fdb493a55a.png)
Membro desde: 21/10/2011 05:58:13
Mensagens: 33
Localização: Rio de Janeiro
Offline
|
Poxa então eu coloquei o lombok justamente porque antes tinha getters e setters, e continuava apresentando a data do sistema operacional, vou retirar o lombok e adicionar os getters e setters pelo Eclipse e dou um clean no projeto.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 15:22:00
|
abmpicoli
JavaTeenager
Membro desde: 27/07/2011 09:11:25
Mensagens: 164
Offline
|
Carinha, como você está verificando que a data do banco está como a data corrente? Por select no banco mesmo?
Porque já está num ponto em que não tou vendo solução nenhuma pelo que você me apresentou...
|
.x. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 31/01/2012 15:34:41
|
andre_rjp
Thread.start()
![[Avatar]](/images/avatar/032124fffd055f950112c7fdb493a55a.png)
Membro desde: 21/10/2011 05:58:13
Mensagens: 33
Localização: Rio de Janeiro
Offline
|
Então eu vejo pelo banco via select *from contatos;
ou pelo proprio PGAdmin que instalei para gerencia o postgreSQL.
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/02/2012 06:45:05
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Tópico movido para o fórum de persistência.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|