Update no MySqL no Netbeans

30 respostas
ceneri

Ola alguem poderia me ajudar com este codigo, sou iniciante a are de java...eu estou usando o netbeans e o mysql para banco, to fazendo um pequeno sistema para portaria onde ja fiz a parte visual, ja fiz o cadastro(insert),consulta(select) e agora não estou conseguindo fazer o UPDATE nos campos,o nome do meu banco é fabrica e o nome da tabela onde quero atualizar é portaria, abaixo esta o codigo fonte se alguem puder olhar e me ajudar eu fico muito grato...abraços a todos e desde ja agradeço a atenção de todos.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     try{
          Class.forName("com.mysql.jdbc.Driver");
          Connection con;
          con = DriverManager.getConnection("jdbc:mysql://localhost:3306/fabrica",
                  "root", "");
          Statement sta = con.createStatement();
          if (true){
              String comandoSQL ="UPDATE portaria SET chegada_material ='"+txt_chegada_material.getText()+"',"+
             "km_chegada = '"+txt_km_chegada.getText()+"',"+
             "km_rodado = '"+txt_resultado.getText()+"',"+
             "hora_chegada= '"+txt_hora_chegada.getText()+"',"+
             "where km_chegada = "+txt_resultado.getText();

              sta.executeUpdate(comandoSQL);
              JOptionPane.showMessageDialog(null,"Dados Gravados com Sucesso","Atenção",
                                         JOptionPane.INFORMATION_MESSAGE);
        }
        }

              catch(Exception erro){
              JOptionPane.showMessageDialog(null,"Por favor insira dados nos campos","Atenção",
              JOptionPane.INFORMATION_MESSAGE);
              txt_numero_gerado.requestFocus();

    }
    }

30 Respostas

RenataFA

Olá amigo!

Me diga, o que está acontecendo? Dando alguma msg de erro? Simplesmente não funciona… dê mais detalhes pra gente por favor.

Grata,
Renata

drsmachado

Este post: http://guj.com.br/java/242669-update-no-mysql-no-netbeans
E este: http://guj.com.br/java/242239-update-no-mysql-no-netbeans
E este: http://guj.com.br/java/242639-update-no-mysql-no-netbeans

Possuem a mesma pergunta. Por que?

Esssa dúvida é extemamente simples, basta que você pergunte de forma correta.

Lembrando, ninguém vai fazer por você.

Existem mais de 100000 exemplos de update no google, nenhum te ajuda?

tucano

http://www.google.com.br/webhp?hl=pt-BR#hl=pt-BR&source=hp&biw=1366&bih=653&q=update+mysql&oq=update+mysql&aq=f&aqi=g10&aql=&gs_sm=e&gs_upl=844l9765l0l13l11l0l1l1l0l415l2580l2-3.4.1&bav=on.2,or.r_gc.r_pw.&fp=204613d154bd948c

:wink:

Tino_

Olá amigo,

Nossa como nosso amigo drsmachado é educadissimo em!

Mas diga ai se vc veio ao forum é porque gostaria de alguma explicação certo? não apenas um exemplo do google.

Diga qual seu problema amigo.

Rodrigo_Sasaki

então… sei que não vai resolver seu problema… ou talvez até resolva… dependendo do que é…

mas pesquise sobre PreparedStatement. É uma maneira bem melhor e mais organizada de montar suas queries.

se não me engando na apostila FJ-21 da caelum fala um pouco disso… ou se quiser uma googlada rápida ja te faz entender o que é…

abraço!

drsmachado

Tino_:
Olá amigo,

Nossa como nosso amigo drsmachado é educadissimo em!

Mas diga ai se vc veio ao forum é porque gostaria de alguma explicação certo? não apenas um exemplo do google.

Diga qual seu problema amigo.

Talvez seja educado desta forma por já ter respondido às dúvidas do camarada no primeiro post que ele enviou…
Agora, como ele abriu três…

ceneri

drsmachado dispenso seus comentarios, ja vi que voce é um otimo cara para se dar ajuda.

ceneri

RenataFA:
Olá amigo!

Me diga, o que está acontecendo? Dando alguma msg de erro? Simplesmente não funciona… dê mais detalhes pra gente por favor.

Grata,
Renata

ola renata…obrigado pela ajuda ja…então eu consegui fazer…depois de pegar varios livros apostilas e videos aula eu fiz…agora vou colocar o codigo nos topicos para compartilhar com algumas pessoas…
obrigado

drsmachado

Pergunte de forma clara, exponha o que está te dificultando, mostre onde pesquisou e o que não entendeu, mostre o que já fez…

Isto está nas regras do fórum, você as leu?

A partir do momento que fizer isto, eu respondo corretamente, assim como a maioria das pessoas aqui.

Rodrigo_Sasaki

primeiro que vejo o drsmachado ajudando gente aí no GUJ o dia todo…
segundo que até agora você abriu 3 posts sobre a mesma coisa, e não postou o erro que está ocorrendo… não tem log de nada… nem uma definição do que ocorre, se quer que alguém te ajude, tem que falar qual é o problema, né :wink:

ceneri

drsmachado:
Tino_:
Olá amigo,

Nossa como nosso amigo drsmachado é educadissimo em!

Mas diga ai se vc veio ao forum é porque gostaria de alguma explicação certo? não apenas um exemplo do google.

Diga qual seu problema amigo.

Talvez seja educado desta forma por já ter respondido às dúvidas do camarada no primeiro post que ele enviou…
Agora, como ele abriu três…

amigo deu certoo vlw…e vc vil so a educação do cara la…da pra ver que ele eh um bom cara…se eu pedi ajuda no forum é pq não estava conseguindo fazer vacilão mesmo

drsmachado

ceneri:
ola renata…obrigado pela ajuda ja…então eu consegui fazer…depois de pegar varios livros apostilas e videos aula eu fiz…agora vou colocar o codigo nos topicos para compartilhar com algumas pessoas…
obrigado

Ou seja, era só pesquisar…
E pensar um pouco…

ceneri

blz…amigo vlw

L

pois mais que ele seja chato , ele ajuda !!

Rodrigo_Sasaki

coloque o código resolvido aí, e mude o título la pra [RESOLVIDO]

ah… e denovo… sugiro que use PreparedStatement.

ceneri

blz pessoal agora umas das operações do meu programa está pronta, (insert,select,update) não vo colocar o (delete),pois é arriscado deixar isso na mão de usuario comum, então sei la caso alguem queira excluir alguma coisa que entre em contato comigo ai eu vo analisar o casa e possivelmente deletar…
agora é o seguinte estou querendo fazer relatorio, alguem sabe por onde eu posso começar???
eu queria fazer tipo um botão ex:
CONSULTAR

data de saida: E data de entrada:

ai exibir o relatorio.

drsmachado

Comece estudando jasper reports (a IDE iReports) é muito boa. Embora já haja a versão 4.x eu ainda utilizo a 3.0 e me dou bem com ela.
Tem vários exemplos no guj, na net, assim que compreender o funcionamento, fica muito mais simples.

Tino_

é amigo,

O IReport é facinho de usar só é bom vc dar uma lida de como começar usa-lo.

e tendo alguma duvida POSTA AE…

Abraço!

ceneri

AQUI ESTA O CODIGO RESOLVIDO DO UPDATE DO MEU BANCO

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try{
         Class.forName("com.mysql.jdbc.Driver");
          Connection con;
          con = DriverManager.getConnection("jdbc:mysql://localhost:3306/fabrica",
                  "root", "");
       Statement sta = con.createStatement();
       if (true){
              String comandoSQL ="UPDATE portaria SET chegada_material ='"+txt_chegada_material.getText()+"',"+
             "saida_material = '"+txt_saida_material.getText()+"',"+
             "km_chegada = '"+txt_km_chegada.getText()+"',"+
             "km_rodado = '"+txt_resultado.getText()+"',"+
             "placa = '"+txtplaca.getText()+"',"+
             "motorista = '"+txtmotorista.getText()+"',"+
             "rg = '"+txt_rg.getText()+"',"+
             "cpf = '"+txt_cpf.getText()+"',"+
             "transportadora ='"+txt_transportadora.getSelectedItem()+"',"+
             "hora_saida = '"+txt_hora_saida.getText()+"',"+
             "carteira_habilitacao = '"+txt_carteira_habilitacao.getText()+"',"+
             "ordem_faturamento = '"+txt_pedido_venda.getText()+"',"+
             "quantidade_pecas = '"+txt_quantidade_pecas.getText()+"',"+
             "quantidade_metros = '"+txt_quantidade_mt.getText()+"',"+
             "numero_nf = '"+txt_numero_nf.getText()+"',"+
             "ajudante_1 = '"+txt_ajudante1.getText()+"',"+
             "ajudante_2 = '"+txt_ajudante2.getText()+"',"+
             "ajudante_3 = '"+txt_ajudante3.getText()+"',"+
             "origem = '"+txt_origem.getText()+"',"+
             "destino ='"+txt_destino.getText()+"',"+
             "uf_1 = '"+txt_uf1.getSelectedItem()+"',"+
             "uf_2 ='"+txt_uf2.getSelectedItem()+"',"+
             "hora_chegada= '"+txt_hora_chegada.getText()+
             "'where numero_gerado = "+txt_numero_gerado.getText();


              sta.executeUpdate(comandoSQL);
              JOptionPane.showMessageDialog(null,"Dados Gravados com Sucesso","Atenção",
                                         JOptionPane.INFORMATION_MESSAGE);
         
        }


        }

    catch(Exception erro){
               JOptionPane.showMessageDialog(null,"Por favor insira dados nos campos","Atenção",
                                         JOptionPane.INFORMATION_MESSAGE);
               txt_numero_gerado.requestFocus();




        }
    }
ceneri

VLW GENTE…
ESTOU FAZENDO OS RELATORIOS JA…AGORA ESTOU PESQUISANDO ALGUMA FORMA QUE O USUARIO POSSA VISUALIZAR ESTE RELATÓRIO…
TIPO CLIAR UM BOTÃO E CHAMAR O RELATORIO, FAZER FILTROS ETC…

ALGUMA DICA ???

ABRAÇOSS…

drsmachado

http://www.slideshare.net/flaviowd/tutorial-gerando-relatrios-com-jasperreports-e-ireports-no-netbeans e http://www.cin.ufpe.br/~tjs/Tutorial%20IReport.doc podem ajudar.

ceneri

VLW MANOO VO DAR UM OLHADA...MAS ANTES DISSO EU ESQUECI UMA COISA NO MEU SISTEMA....TIPO EU QUERIA CLICAR NO BOTÃO E ELE FAZER UMA CONSULTA NO BANCO DE DADOS PARA VER QUAL FOI O MAIOR VALOR INSERIDO NA TABELA....AI A PARTI DAI EU COMEÇO A TRABALHAR COM VALORES AUTOMATICO PARA O USUARIO...OLHA A MINHA QUERY...

try{
          Class.forName("com.mysql.jdbc.Driver");
          Connection con;
          con = DriverManager.getConnection("jdbc:mysql://localhost:3306/fabrica",
                  "root", "");
          Statement sta = con.createStatement();
          if (true){
              ResultSet res = sta.executeQuery("select max (numero_gerado) from portaria = "
                      + txt_numero_cadastro.getText()         );


              }

ELE NÃO ME ESTA RETORNANDO O MEU MAIOR NUMERO NO BANCO...

drsmachado
ResultSet res = sta.executeQuery("select max (numero_gerado) from portaria = "  
                     + txt_numero_cadastro.getText()         );

Está faltando a cláusula WHERE.
Ou está sobrando o

= "  
                     + txt_numero_cadastro.getText()         );
ceneri

amigo coloquei assim…não ta rodandoo…ou seja não esta trazendo nenhuma informação do BD…e tbm ja tirei o "+ txt_numero_cadastro.getText() );
ja tirei os parentes do numero_gerado tbm…oq sera q pode ser?
ele esta assim por enquanto.

String comandoSQL ="select max (numero_gerado)from portaria='"+txt_numero_cadastro.getText()+"',"+ "'where numero_gerado = "+txt_numero_cadastro.getText();

drsmachado

Faz algum sentido para ti comparar o portaria com um número de cadastro, como está aqui?

portaria='"+txt_numero_cadastro.getText()

???

Para mim e para o banco de dados, certeza que não. Aliás, por que raios esta coisa está ali?

Na resposta anterior, pedi para tirar a parte do =’’"+ txt_numero_cadastro.getText()); e não só "+ txt_numero_cadastro.getText() ); e mesmo assim está ali ainda.

Agora, por favor, pesquise, leia sobre SELECT e sobre o que ele suporta (cláusura WHERE em especial) e como formar a sintaxe mais adequada de uma consulta.

ceneri

ehh manoo vacileii…hehehhe…
mas então arrumei agora

String comandoSQL ="select max (numero_gerado) from portaria='"+ "'where numero_gerado = "+txt_numero_cadastro.getText();

mesmo assim nda…
não sei oq fazer mais…rs

RenataFA

ceneri:
ehh manoo vacileii…hehehhe…
mas então arrumei agora

String comandoSQL ="select max (numero_gerado) from portaria='"+ "'where numero_gerado = "+txt_numero_cadastro.getText();

mesmo assim nda…
não sei oq fazer mais…rs

O “=” que o drsmachado falou ainda está ai… tem coisa errada.

Basicamente, um comando select tem que ser assim olha:

select from where

O seu tem um “=” ali perdido.

Além disso, dá uma olhada no comando que vc tá usando no select, acho que tem algum campo errado. Vc tá pedindo o maior numero_gerado QUANDO numero_gerado for igual a alguma coisa. Isso não vai funcionar! Vai sempre trazer a condição do seu filtro! Tem coisa errada ai! Ou o campo que vc deve usar no MAX tá errado, ou o campo do WHERE tá errado. Não faz nenhum sentido ser o msm campo. Tendeu?

L

Cara uma coisa tão simples vc esta se confundido todo..

não sei se vai ajudar dessa form que faço, mas é bem simples entender,caso vc tenha um campo especifico que queira que imprima, dá um select nele depois vc chama ele para que possa imprimir.....

Relátorio...

public RelatorioCliente(String codigoImprCliente) {    
		/* Efetua a conexao a base de dados e coleta os valores da base de dados armazenando-os  
       em um array para ser futuramente utilizado */  

		RelatorioClienteTO relatorioClienteTO = new RelatorioClienteTO();

		try {   
			  Class.forName("org.apache.derby.jdbc.ClientDriver"); // O sun.jdbc.odbc.JdbcOdbcDriver significa que seria usado um banco access
		      String url = "jdbc:derby://localhost:1527/BancoBar;create=false";// esta string carrega o nome da fonte de dados
		      connection = DriverManager.getConnection(url,"vitor"," ");// aqui  efetuada conex�o passando -se a fonte de dados e o login e senha do banco, que neste caso n�sso existem.
		      System.out.println("Conexão estabelecida"); // exibida uma mensagem informando que a conex�o foi efetuada

			PreparedStatement pstm = connection.prepareStatement( "select * from tb_Clientes where CodigoImprCliente = ?");


//CodigoImprCliente  'codigo onde sera impresso o relátorio"


			pstm.setString(1,codigoImprCliente);

			rs = pstm.executeQuery();

			if(rs.next()) {   
				
				relatorioClienteTO.setCodigoImprCliente(rs.getString("codigoImprCliente"));
				relatorioClienteTO.setNomeCLi(rs.getString("nomeCLi"));
				relatorioClienteTO.setTelefoneCli(rs.getString("telefoneCli"));
				relatorioClienteTO.setEnderecoCli(rs.getString("enderecoCli"));
			}   
		}   
		catch (Exception e) {   
			System.err.println("Problemas apresentados na operacao de conexao");   
			e.printStackTrace();   
		}

depois chamo aqui .....(principal)

private void btnCodigoImpressaoActionPerformed(java.awt.event.ActionEvent evt) {

    	RelatorioCliente  relatorio = new  RelatorioCliente (txtCodigoImprCliente.getText());  // <---- ' txtCodigoImprCliente 'é  o número do campo vai buscar os caras!
    	
    }
ceneri

ta foda aqui to me matandoo…hehhehe
na vdd oq eu queria era trazer um numero automatico no BD a partir d um cadastro…ai como fiz isso pensei em fazer um botão para chamar o maior numero do BD ai o usuario poderia digitar…

sif (true){ ResultSet res = sta.executeQuery("select max (numero_gerado) from portaria "+ "where numero_gerado >'?'"+txt_numero_cadastro.getText());

não to conseguindo fazer… :frowning:

ceneri

amigos olhem este video, qdo eu faço um relatorio no java ele fica em jrxml e o do cara ficou .java pq?
http://www.youtube.com/watch?v=z6H_9uwP4PQ&feature=related

Criado 24 de maio de 2011
Ultima resposta 27 de mai. de 2011
Respostas 30
Participantes 7