| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 19:10:54
|
AndreMendes
JavaChild
![[Avatar]](/images/avatar/37aa7611d718537b9c8cf45afcfd4856.jpg)
Membro desde: 23/09/2009 02:37:07
Mensagens: 143
Offline
|
Quando vou checar o banco, os registros estão vazios ...
Lembrando que, eu sempre uso o UPDATE e nunca o INSERT INTO ...
Todos os metodos fazem updates ...
public void inserirMovimentoCaixa(String empresa, MovimentoDoCaixa movimentoDoCaixa) throws SQLException, ClassNotFoundException{
String alterar = "UPDATE "+empresa+ " SET DATADEHOJE='"+movimentoDoCaixa.getDataDeHoje()+"'," +
" NUMERODODOCUMENTO='"+movimentoDoCaixa.getNumeroDoDocumento()+"'," +
" CAIXARESPONSAVEL='"+movimentoDoCaixa.getCaixaResponsavel()+"'";
conectar();
stm.execute(alterar);
desconectar();
}
|
André Mendes Duarte
Bacharelando em Ciência da Computação na Universidade Do Estado de Santa Catarina |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 19:50:09
|
renamed
GUJ Ranger
Membro desde: 21/09/2009 08:47:57
Mensagens: 889
Localização: Rio de Janeiro
Offline
|
AndreMendes wrote:Quando vou checar o banco, os registros estão vazios ...
Lembrando que, eu sempre uso o UPDATE e nunca o INSERT INTO ...
Todos os metodos fazem updates ...
public void inserirMovimentoCaixa(String empresa, MovimentoDoCaixa movimentoDoCaixa) throws SQLException, ClassNotFoundException{
String alterar = "UPDATE "+empresa+ " SET DATADEHOJE='"+movimentoDoCaixa.getDataDeHoje()+"'," +
" NUMERODODOCUMENTO='"+movimentoDoCaixa.getNumeroDoDocumento()+"'," +
" CAIXARESPONSAVEL='"+movimentoDoCaixa.getCaixaResponsavel()+"'";
conectar();
stm.execute(alterar);
desconectar();
}
Você meio que sabe seu erro, não é verdade?
Se você está inserido um novo registro, você tem que fazer insert into.
Existe algum motivo para que você só use update?
|
flw!
===========================
CV: http://lattes.cnpq.br/7235056457600426 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 20:51:57
|
AndreMendes
JavaChild
![[Avatar]](/images/avatar/37aa7611d718537b9c8cf45afcfd4856.jpg)
Membro desde: 23/09/2009 02:37:07
Mensagens: 143
Offline
|
Bom, os dados estão vindo de um formulário HTML, estou trabalhando com JSP.
A minha intenção ao usar o update é deixar livre a ordem de inserção...
Mas repensando minha ideia, vi que não tem como, pois tenho que inserir primeiro o registro chave e depois os demais.
TOPICO RESOLVIDO
|
André Mendes Duarte
Bacharelando em Ciência da Computação na Universidade Do Estado de Santa Catarina |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 22:06:51
|
rodrigo.bossini
GUJ Master
![[Avatar]](/images/avatar/3b6fe2dc98ceed6e1608e7cfc662ab11.jpg)
Membro desde: 01/07/2008 20:59:17
Mensagens: 1055
Offline
|
Pelo visto você não entendeu nada de SQL ainda. Talvez seja interessante pegar uma apostila somente de sql, e realizar alguns testes em algum SGBD, como o mySQL, só pra ver como tudo funciona. Misturar SQL com java pode ser complicado se você não tem um conhecimento básico de ambos.
|
http://www.rodrigobossini.com.br/
Meu Twitter:@rodrigobossini Se uma pessoa fala português há 30 anos e ainda não aprendeu, por que é que vou acreditar que ela está programando em alguma linguagem de programação há apenas 10 anos e sabe o que está fazendo? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/06/2010 22:53:06
|
AndreMendes
JavaChild
![[Avatar]](/images/avatar/37aa7611d718537b9c8cf45afcfd4856.jpg)
Membro desde: 23/09/2009 02:37:07
Mensagens: 143
Offline
|
Sim, sim, sou iniciante ainda ...
O primeiro problema eu resolvi ...
O problema agora, é que meu update nao funciona ...
Nenhuma exceção é disparada, mas quando vou checar o banco, os registros não se alteraram! Ai vai o codigo do update.
This message was edited 1 time. Last update was at 23/06/2010 22:53:37
|
André Mendes Duarte
Bacharelando em Ciência da Computação na Universidade Do Estado de Santa Catarina |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2010 00:55:40
|
AndreMendes
JavaChild
![[Avatar]](/images/avatar/37aa7611d718537b9c8cf45afcfd4856.jpg)
Membro desde: 23/09/2009 02:37:07
Mensagens: 143
Offline
|
Problema resolvido.
Muito grato pela ajuda.
|
André Mendes Duarte
Bacharelando em Ciência da Computação na Universidade Do Estado de Santa Catarina |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2010 12:22:25
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Use um preparedstatement. Do jeito que seu código está, fica muito sujeito a erros e ataques. Sem falar que essas concatenações deixam tudo horrível de ler. Sem falar que no PreparedStatement vc não precisa se preocupar com o formato de data do banco, ou com colocar aspas simples para os campos de texto (aliás, pior do que isso, em remover as aspas simples das Strings de textos do seu usuário).
This message was edited 2 times. Last update was at 01/07/2010 12:24:21
|
@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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2010 12:29:19
|
AndreMendes
JavaChild
![[Avatar]](/images/avatar/37aa7611d718537b9c8cf45afcfd4856.jpg)
Membro desde: 23/09/2009 02:37:07
Mensagens: 143
Offline
|
Voce pode me passar algum lugar em que eu possa ler sobre o preparedStatement?
|
André Mendes Duarte
Bacharelando em Ciência da Computação na Universidade Do Estado de Santa Catarina |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2010 15:56:52
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Na verdade muda muito pouca coisa. Veja:
Modo que vc faz:
Modo preferível:
Note que a ? do nome não precisa estar entre aspas simples. Como o preparedStatement sabe que o campo é um String, já que vc usou o setString, ele mesmo se encarrega de comunicar isso ao banco. Aí, se seu usuário tiver um nome como: "Ultred's". não vai dar pau no seu SQL.
Isso também impede que um atacante tente cadastrar um nome como:
Que transformaria a String em:
Note que dois comandos SQLs aí no meio são válidos. E causariam uma catástrofe no banco de dados. É o tal do SQL Injection.
Com o preparedStatement, esse problema não ocorreria e vc efetivamente teria um aluno chamado "'); DELETE * FROM Aluno; COMMIT;".
|
@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 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/07/2010 21:52:10
|
Jhonny Oliveira
JavaChild
![[Avatar]](/images/avatar/33edb9e2b500c17ef306ebc4a979a878.jpg)
Membro desde: 25/10/2009 15:14:47
Mensagens: 115
Localização: Guarulhos - SP
Offline
|
Leia também sobre hibernate, seu código fica mais elegante, mais correto e compatível com os bancos de dados mais utilizados.
A apostila do FJ-21 da Caelum tem um tópico sobre Hibernate, já uma lida lá.
Boa sorte.
|
Jhonny Oliveira
"E Deus disse a Noé: - Faça backup que Eu vou formatar!".
8º Semestre de Sistemas de Informação - Faculdade Eniac
jhonny.informatica@gmail.com
|
|
|
 |
|
|