Gravar dados no BD [Resolvido]

30 respostas
Anime

Boa Noite,

Quero gravar o resultado do for no banco de dados,mas não sei como devo fazer ,help… :oops:

private void bt_geraparcelaActionPerformed(java.awt.event.ActionEvent evt) {                                               
               double valorparc=0,valocompra;
      
               int numepar=0;
               numepar=Integer.parseInt(tf_numparcelas.getText());
             
                 
              // if  (numepar > 0)
              // {
                  valorparc=((Double.parseDouble(tf_valorliquido.getText()) / (Double.parseDouble(tf_numparcelas.getText()))));
                  tf_valorpar.setText(String.valueOf(valorparc));
                  int cont=1;
                  
                  Calendar data = Calendar.getInstance();   
                   
                  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
                  String h=format.format(data.getTime());
                  String resp="";
                  for (cont = 2; cont <= numepar; cont++) {   
                  
                  data.add(Calendar.MONTH, 1);
              
                  //JOptionPane.showMessageDialog(null,cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime()))) ;
                  System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));//aq está a saida que quero gravar,por favor um jeito simples
                  
                }

30 Respostas

rafael.borges

Que tipo de banco de dados :?

Anime

Access!Por favor não me fale pra mudar o banco,estou no fim do projeto…

rafael.borges

Olha, banco Access nem tenho resposta.

Mas deixo uma sugestão.

Mude de Banco.

Anime

rafael.borges:
Olha, banco Access nem tenho resposta.

Mas deixo uma sugestão.

Mude de Banco.

Valeu! :cry:

Esqueci,o banco é access mas os comando são SQL,conexão JDBC.

Anime

??? ninguém??? :frowning:

guisantogui

Primeiramente, o que voce quer gravar no banco?

Já existe uma Tabela criada para o dado que vc qr gravar?
Ex: João gravar na tabela "“Pessoas” ou “Funcionarios”

Se esta tudo ok

Vc tem que montar a query que é a parte mais simples

INSERT INTO nome_da_tabela (COLUNA1, COLUNA2, …, COLUNA N) VALUES (VALOR1, VALOR2, …, VALOR N);

NOTA: Procure por PreparedStatement e os valores que são String’s devem estar entre aspas simples!

Anime

Tentei fazer assim:

private void bt_geraparcelaActionPerformed(java.awt.event.ActionEvent evt) {                                               
               double valorparc=0,valocompra;
      
               int numepar=0;
               numepar=Integer.parseInt(tf_numparcelas.getText());
             
                 
              // if  (numepar > 0)
              // {
                  valorparc=((Double.parseDouble(tf_valorliquido.getText()) / (Double.parseDouble(tf_numparcelas.getText()))));
                  tf_valorpar.setText(String.valueOf(valorparc));
                  int cont=1;
                  
                  Calendar data = Calendar.getInstance();   
                   
                  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
                  String h=format.format(data.getTime());
                  String resp="";
                  for (cont = 1; cont <= numepar; cont++) {   
                  
                   
                  data.add(Calendar.MONTH, 1);
                  //resp=(cont )+ (numepar) + (valorparc) + (format.format(data.getTime()));
                  //JOptionPane.showMessageDialog(null,cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime()))) ;
                  System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));
                 // 
                  try
                  {
                      String sqlinsert=" insert into TB_recebe (cont,numepar,valorparc,data)  values  (quant,numepar,valorparc,data)";//os campos a tabela são esses mesmo
                  
                    
                  
                      conecta_venda.statement.executeUpdate(sqlinsert);
                      JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");
            
                     // atualizar resulset;
                     conecta_venda.resultset=conecta_venda.statement.executeQuery("select * from TB_recebe order by "+oi);
            
                     conecta_venda.resultset.first();//va
                   
                  }
                   catch(SQLException erro)
                  {
                    JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro);
                  }
                  
                 
                 
                }

}

Mas está dando erro. :oops:

pmlm

Dá uma vista de olhos em PreparedStatement.

Anime

pmlm:
Anime:

String sqlinsert=" insert into TB_recebe (cont,numepar,valorparc,data)  values  (quant,numepar,valorparc,data)";//os campos a tabela são esses mesmo
                  
                      conecta_venda.statement.executeUpdate(sqlinsert);

Dá uma vista de olhos em PreparedStatement.

Bom dia!

me ajuda ai vai quero um exemplo “facil”…

lina

Oi Anime,

Gostaria muito de ajuda-la. Porém, preciso saber qual é o erro!

Utilize:

catch(SQLException erro) { erro.printStackTrace(); JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro); }

E cole a exceção gerada.

Tchauzin!

Anime

lina:
Oi Anime,

Gostaria muito de ajuda-la. Porém, preciso saber qual é o erro!

Utilize:

catch(SQLException erro) { erro.printStackTrace(); JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro); }

E cole a exceção gerada.

Tchauzin!

Oi Lina,bom dia!

Não sei se é isso que vc precisa:

java.sql.SQLException: [Microsoft][Driver ODBC para Microsoft Access] Parâmetros insuficientes. Eram esperados 4.

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)

at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)

at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)

at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:288)
lina

Oi,

A principio está faltando algum parâmetro em seu Insert…
Conecte via sql no se banco e mostre o desc da tabela. depois cole o resultado!

Tchauzin!

lina

Oi,

Outra coisa que analisei, ele não está encontrando os parâmetros pois os campos do tipo String devem ser passados por aspas simples ’

Tchauzin!

Anime

Todos os campos são inteiros menos o data.

Campos --------------------------- Tipo
cod----------------------------------AutoNumeração
quant--------------------------------Número
numepar----------------------------Número
valorpar-----------------------------Número
data----------------------------------Data

pmlm

Este erro não é do código acima. Como tens agora o código?

dxos
Nunca usei access mais tenta usar esse trecho aqui...
String sqlinsert=" insert into TB_recebe (cont,numepar,valorparc,data)  values  ("+quant+","+numepar+","+valorparc+",'"+data+"')";
  
conecta_venda.statement.executeUpdate(sqlinsert);
Anime

dxos,tentei mas não deu.

O código que gerou o erro:

private void bt_geraparcelaActionPerformed(java.awt.event.ActionEvent evt) {                                                 
               double valorparc=0,valocompra;   
         
               int numepar=0;   
               numepar=Integer.parseInt(tf_numparcelas.getText());   
               
                   
              // if  (numepar > 0)   
              // {   
                  valorparc=((Double.parseDouble(tf_valorliquido.getText()) / (Double.parseDouble(tf_numparcelas.getText()))));   
                  tf_valorpar.setText(String.valueOf(valorparc));   
                  int cont=1;   
                     
                  Calendar data = Calendar.getInstance();     
                     
                  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");   
                  String h=format.format(data.getTime());   
                  String resp="";   
                  for (cont = 1; cont <= numepar; cont++) {     
                     
                     
                  data.add(Calendar.MONTH, 1);   
                  //resp=(cont )+ (numepar) + (valorparc) + (format.format(data.getTime()));   
                  //JOptionPane.showMessageDialog(null,cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime()))) ;   
                  System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));   
                 //   
                  try   
                  {   
                      String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (comt,numepar,valorparc,data)";//os campos a tabela são esses mesmo   
                     
                       
                     
                      conecta_venda.statement.executeUpdate(sqlinsert);   
                      JOptionPane.showMessageDialog(null,"Gravação realizada com sucesso");   
               
                     // atualizar resulset;   
                     conecta_venda.resultset=conecta_venda.statement.executeQuery("select * from TB_recebe order by "+oi);   
               
                     conecta_venda.resultset.first();//va   
                     
                  }   
                   catch(SQLException erro)     
                   {     
                     erro.printStackTrace();   
                      JOptionPane.showMessageDialog(null,"Erro,dados não foram gravados"+erro);     
                   } 
                   
                   
                }   
  
}

Eu estava pensando em guardar o resultado do laço em um vetor ,será que a certo?

Anime

:oops:help…

dxos

utilizando a concatenação que eu mandei, continuou com o mesmo erro ?

Anime

Já utilizei,não deu certo :cry: :P,mas obrigada pela atenção!

bdias1990

leia a parte de banco dessa apostila : http://downloads.caelum.com.br/apostila/caelum-java-web-fj21.pdf

Zeed01

Boa noite galera,

Acho que essa linha de codigo esta errada:

String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (comt,numepar,valorparc,data)";//os campos a tabela são esses mesmo

deveria se algo assim:

String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", " + format.format(data.getTime()) ")";

[]s

Anime

bdias1990:
leia a parte de banco dessa apostila : http://downloads.caelum.com.br/apostila/caelum-java-web-fj21.pdf

Li,mas tenho duvidas.
Posso colocar o método prepareStatement,direto no meu código ou tenho que criar as classes?

Zeed01

Boa noite galera,

Tentou mudar a linha do insert ??

[]s

Anime

Zeed01:
Boa noite galera,

Tentou mudar a linha do insert ??

[]s

É o que estou fazendo,até gravou no bd ,mas grava uma data sempre assim 30/12/1899,ai que estranho né…

Carlos_ds_jar

Anime:
bdias1990:
leia a parte de banco dessa apostila : http://downloads.caelum.com.br/apostila/caelum-java-web-fj21.pdf

Li,mas tenho duvidas.
Posso colocar o método prepareStatement,direto no meu código ou tenho que criar as classes?


Pode usar passando direto a consulta, que aí vai ficar bem mais facil de usar os valores :idea:

Anime
Anime:
Zeed01:
Boa noite galera,

Tentou mudar a linha do insert ??

[]s

É o que estou fazendo,até gravou no bd ,mas grava uma data sempre assim 30/12/1899,ai que estranho né...
Está assim:
System.out.println(cont+"/"+numepar+"   "+valorparc+"   "+(format.format(data.getTime())));
   //na mensagem da certinho
  try
{

   String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", " + format.format(data.getTime()) +")";
Carlos_ds_jar

Zeed01:
Boa noite galera,

Acho que essa linha de codigo esta errada:

String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (comt,numepar,valorparc,data)";//os campos a tabela são esses mesmo

deveria se algo assim:

String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", " + format.format(data.getTime()) ")";

[]s


Ei chapa, data no SQL qeu eu saiba deve ser entre aspas simples tipo: ‘27/10/1988’ :shock:
Ou seja seu codigo deveria ficar assim:

String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", 
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: " + format.format(data.getTime()) "
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: )";

Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea:

Anime
Carlos_ds_jar:
Zeed01:
Boa noite galera, Acho que essa linha de codigo esta errada:
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (comt,numepar,valorparc,data)";//os campos a tabela são esses mesmo
deveria se algo assim:
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", " + format.format(data.getTime()) ")";
[]s
Ei chapa, data no SQL qeu eu saiba deve ser entre aspas simples tipo: '27/10/1988' :shock: Ou seja seu codigo deveria ficar assim:
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", 
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: [/quote]

Agora ficou assim
[code]

 String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", 
Deu certo
Vc  esqueceu do +

Valeu Obrigada! :P" + format.format(data.getTime()) "
 lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: [/quote]

Agora ficou assim
[code]

 String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", \'" + format.format(data.getTime())+ "\')";
Deu certo Vc só esqueceu do +

Valeu Obrigada! :P)";
[/code]
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea:

Agora ficou assim
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", \'" + format.format(data.getTime())+ "\')";
Deu certo Vc só esqueceu do +

Valeu Obrigada! :P" + format.format(data.getTime())+ "
Deu certo
Vc só esqueceu do +

Valeu Obrigada! :P" + format.format(data.getTime()) "
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: [/quote]

Agora ficou assim
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", \'" + format.format(data.getTime())+ "\')";
Deu certo Vc só esqueceu do +

Valeu Obrigada! :P)";
[/code]
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: [/quote]

Agora ficou assim
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", \'" + format.format(data.getTime())+ "\')";
Deu certo Vc só esqueceu do +

Valeu Obrigada! :P)";

[/code]
Deu certo
Vc só esqueceu do +

Valeu Obrigada! :P" + format.format(data.getTime()) "
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: [/quote]

Agora ficou assim
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", \'" + format.format(data.getTime())+ "\')";
Deu certo Vc só esqueceu do +

Valeu Obrigada! :P)";
[/code]
Só lembrando que é fundamental utilizar o caracter de scape \ para a adição corretas das aspas no string :idea: [/quote]

Agora ficou assim
String sqlinsert=" insert into TB_recebe (quant,numepar,valorparc,data)  values  (" + cont + "," + numepar +", " + valorparc +", \'" + format.format(data.getTime())+ "\')";
Deu certo Vc só esqueceu do +

Valeu Obrigada! :P

Anime

Obrigada a todos pela ajuda! :wink:

Criado 7 de agosto de 2010
Ultima resposta 10 de ago. de 2010
Respostas 30
Participantes 9