Problema com PreparedStatement

5 respostas
AndreMendes
public void inserirPagamento(Pagamentos pagamentos) throws SQLException, ClassNotFoundException{

        String inserir = "INSERT INTO pagamentos (data, valor) VALUES (? , ?)";

        Data hoje = new Data();

        Class.forName("com.mysql.jdbc.Driver");
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/siprevi","root","");
        stm = connection.prepareCall(inserir);
        stm.setDate(1, Date.valueOf(hoje.dataFormatada()));
        stm.setFloat(2, pagamentos.getValor());
        connection.close();

    }

o método dataFormatada() retorna uma string yyyy-MM-dd ...
Ele não lança nenhuma exceção, mas o banco fica vazio!

5 Respostas

VagnerChines

Verifica o tipo de dados do bd, ou tambem pode ser as opções regionais e de idioma.

Espero ter ajudado

ViniGodoy

Faltou chamar a linha

Se não mandar a consulta rodar, ela não roda mesmo.

V

…faltou um stm.executeUpdate();

e se seu banco não for commit automatico um:

connection.commit();

[]´s

AndreMendes

Muito grato pela ajuda, de tanto apagar, copiar e colar esqueci de recolocar o stm.execute();
mas precisa ser um excuteUpdate?

ViniGodoy

AndreMendes:
Muito grato pela ajuda, de tanto apagar, copiar e colar esqueci de recolocar o stm.execute();
mas precisa ser um excuteUpdate?

Tanto faz.

Eu geralmente uso os métodos de nome mais completo: executeUpdate() e executeQuery(). Assim o int com o número de registros ou o resultSet são retornados diretamente pelas funções.

O execute() exigiria que você usasse os método getResultSet() e getResultCount() adicionalmente.

Criado 7 de julho de 2010
Ultima resposta 7 de jul. de 2010
Respostas 5
Participantes 4