Boa tarde pessoal, quem puder me ajudar, me dê uma luz pra esse erro que está dando quando tento inserir no banco de dados!
estou usando java, com sgbd postgresql!
o erro é: org.postgresql.util.PSQLException: ERRO: erro de sintaxe em ou próximo a “.0”
Posta a desgraça do código.
Quer que adivinhemos o que está errado?
D
Djeisson
rapaz, tu ta nervoso demais rsrsrsrsrs… brincadeira, já agradeço pela rapidez!
já vou postar o código carma…
ta ai porra:
private void jBSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// Esse código utiliza o método validaFormulario para validar suas entradas
if ( validaFormulario(evt) ){
BD_Insere objBD = new BD_Insere(); // instancia a classe BancoDados
if (objBD.insereProjeto(titulo, cota_da_bolsa, edital, preco_material_consumo, preco_material_permanente,
preco_material_bibliografico, data_vigencia_ini, data_vigencia_fim)) {
System.out.println(titulo);
System.out.println(cota_da_bolsa);
System.out.println(edital);
System.out.println(preco_material_consumo);
System.out.println(preco_material_permanente);
System.out.println(preco_material_bibliografico);
System.out.println(data_vigencia_ini);
System.out.println(data_vigencia_fim);
JOptionPane.showMessageDialog(rootPane, "Dados gravados com sucesso",
"Confirmação de cadastro", JOptionPane.INFORMATION_MESSAGE);
jBLimparActionPerformed(evt);
dispose(); // Fecho o Frame atual
inicial obj = new inicial(); // Instancio o FramePrincipal
obj.setVisible(true);
} else {
JOptionPane.showMessageDialog(rootPane, "Dados não gravados",
"Alerta de erro", JOptionPane.ERROR_MESSAGE);
// Volta o cursor para o campo código
jTFTitulo.selectAll();
jTFTitulo.requestFocusInWindow();
}
}
}
booleanresp=true;//variávelderetornocon.conectar();//abrirconexãocomobancodedados//criareexecutaraconsultaaobancodedadosStringquery="INSERT INTO projeto (titulo, cota_da_bolsa, edital, preco_material_consumo"+"preco_material_permanente, preco_material_bibliografico, data_vigencia_inicio, data_vigencia_fim) "+"VALUES "+"('"+titulo+"','"+cotaDaBolsa+"','"+edital+"',"+precoMaterialConsumo+""+""+precoMaterialPermanente+","+precoMaterialBibliografico+",'"+dataVigenciaInicio+"','"+dataVigenciaFim+"')";con.inserir(query);returnresp;
}
drsmachado
1 use a tag [code]
D
Djeisson
publicvoidinserir(Stringquery){try{comando.execute(query);}catch(SQLExceptionex){Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE,null,ex);}finally{fechar();}}voidconectar(){try{Class.forName("org.postgresql.Driver");// carrega classe de driver do banco de dados// estabelece conexão com o banco de dadosconexao=DriverManager.getConnection(url,user,senha);// cria Statement para consultar banco de dadoscomando=conexao.createStatement();System.out.println("Conectado!");}catch(ClassNotFoundExceptione){imprimeErro("Erro ao carregar o driver",e.getMessage());}catch(SQLExceptione){imprimeErro("Erro ao conectar",e.getMessage());}}// Fim do método conectar()// Método privado que fecha a conexão com o Banco de Dadosvoidfechar(){try{comando.close();conexao.close();System.out.println("Conexão Fechada");}catch(SQLExceptione){imprimeErro("Erro ao fechar conexão",e.getMessage());}}// Fim do método fechar()// Método privado que imprime mensagens de erro provenientes ExceçõesvoidimprimeErro(Stringmsg,StringmsgErro){JOptionPane.showMessageDialog(null,msg+": "+msgErro,"Erro crítico",0);System.err.println(msg);System.out.println(msgErro);//System.exit(0);}// Fim do método imprimeErro()
D
Djeisson
voidconectar(){try{Class.forName("org.postgresql.Driver");// carrega classe de driver do banco de dados// estabelece conexão com o banco de dadosconexao=DriverManager.getConnection(url,user,senha);// cria Statement para consultar banco de dadoscomando=conexao.createStatement();System.out.println("Conectado!");}catch(ClassNotFoundExceptione){imprimeErro("Erro ao carregar o driver",e.getMessage());}catch(SQLExceptione){imprimeErro("Erro ao conectar",e.getMessage());}}// Fim do método conectar()// Método privado que fecha a conexão com o Banco de Dadosvoidfechar(){try{comando.close();conexao.close();System.out.println("Conexão Fechada");}catch(SQLExceptione){imprimeErro("Erro ao fechar conexão",e.getMessage());}}// Fim do método fechar()// Método privado que imprime mensagens de erro provenientes ExceçõesvoidimprimeErro(Stringmsg,StringmsgErro){JOptionPane.showMessageDialog(null,msg+": "+msgErro,"Erro crítico",0);System.err.println(msg);System.out.println(msgErro);//System.exit(0);}// Fim do método imprimeErro()
drsmachado
Aqui está o erro
String query = "INSERT INTO projeto (titulo, cota_da_bolsa, edital, preco_material_consumo" + /*Não existe vírgula entre um e outro*/
"preco_material_permanente, preco_material_bibliografico, data_vigencia_inicio, data_vigencia_fim)
wbdsjunior
estão faltando umas vígulas:
String query = "INSERT INTO projeto (titulo, cota_da_bolsa, edital, preco_material_consumo" +
", preco_material_permanente, preco_material_bibliografico, data_vigencia_inicio, data_vigencia_fim) " +
// ^ aqui
"VALUES " +
"('"+titulo+"','"+cotaDaBolsa+"','"+edital+"',"+precoMaterialConsumo+"" +
", "+precoMaterialPermanente+","+precoMaterialBibliografico+",'"+dataVigenciaInicio+"','"+dataVigenciaFim+"')";
// ^ e aqui
para evitar esse problema e SQL Injection, use PreparedStatement.
D
Djeisson
Pessoal muito obrigado mesmo ta resolvido o problema… caramba até q enfim deu certo!
Agradeço ao “wbdsjunior” pela solução e atenção e também ao drsmachado pela atenção também!
E me desculpem porque sou novo no Fórum!
Mas muito, muitíssimo obrigado!
(OBS.: trabalho de conclusão de disciplina kkkkk)
drsmachado
É sempre assim, trabalhos de conclusão são sempre estressantes.
Só edita o tópico e coloca [resolvido] no título