Erro com o postgre

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”

desde já agradeço a todos.

Posta a desgraça do código.
Quer que adivinhemos o que está errado?

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(); } } }

public boolean insereProjeto(String titulo, String cotaDaBolsa, String edital,
double precoMaterialConsumo, double precoMaterialPermanente,
double precoMaterialBibliografico, String dataVigenciaInicio, String dataVigenciaFim){

   boolean resp =true; // variável de retorno
   
       con.conectar(); // abrir conexão com o banco de dados
       // criar e executar a consulta ao banco de dados
       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) " +
               "VALUES " +
               "('"+titulo+"','"+cotaDaBolsa+"','"+edital+"',"+precoMaterialConsumo+"" +
               ""+precoMaterialPermanente+","+precoMaterialBibliografico+",'"+dataVigenciaInicio+"','"+dataVigenciaFim+"')";

       con.inserir(query);

   return resp;

}

1 use a tag [code]

[code]public void inserir(String query){
try {
comando.execute(query);
} catch (SQLException ex) {
Logger.getLogger(Conexao.class.getName()).log(Level.SEVERE, null, ex);
}

        finally{
            fechar();
        }

}

void conectar() {
try {

       Class.forName( "org.postgresql.Driver" ); // carrega classe de driver do banco de dados
       // estabelece conexão com o banco de dados
       conexao = DriverManager.getConnection( url, user, senha);
       // cria Statement para consultar banco de dados
       comando = conexao.createStatement();
       System.out.println("Conectado!");
   } catch (ClassNotFoundException e) {
       imprimeErro("Erro ao carregar o driver", e.getMessage());
       
   } catch (SQLException e) {
       imprimeErro("Erro ao conectar", e.getMessage());
       
   }

} // Fim do método conectar()

// Método privado que fecha a conexão com o Banco de Dados
void fechar() {
try {
comando.close();
conexao.close();
System.out.println(“Conexão Fechada”);
} catch (SQLException e) {
imprimeErro(“Erro ao fechar conexão”, e.getMessage());
}
} // Fim do método fechar()

// Método privado que imprime mensagens de erro provenientes Exceções
void imprimeErro(String msg, String msgErro) {
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()[/code]

[code]void conectar() {
try {

       Class.forName( "org.postgresql.Driver" ); // carrega classe de driver do banco de dados
       // estabelece conexão com o banco de dados
       conexao = DriverManager.getConnection( url, user, senha);
       // cria Statement para consultar banco de dados
       comando = conexao.createStatement();
       System.out.println("Conectado!");
   } catch (ClassNotFoundException e) {
       imprimeErro("Erro ao carregar o driver", e.getMessage());
       
   } catch (SQLException e) {
       imprimeErro("Erro ao conectar", e.getMessage());
       
   }

} // Fim do método conectar()

// Método privado que fecha a conexão com o Banco de Dados
void fechar() {
try {
comando.close();
conexao.close();
System.out.println(“Conexão Fechada”);
} catch (SQLException e) {
imprimeErro(“Erro ao fechar conexão”, e.getMessage());
}
} // Fim do método fechar()

// Método privado que imprime mensagens de erro provenientes Exceções
void imprimeErro(String msg, String msgErro) {
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()[/code]

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) 

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.

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)

É sempre assim, trabalhos de conclusão são sempre estressantes.
Só edita o tópico e coloca [resolvido] no título