Salve galera
seguinte, estou montando uma string sql usando String.format, o problema é que tenho um valor decimal e não sei como fazer ele manter esse valor decimal pq se uso %.2f ele usa float assim ele usa virgula e nao ponto.
vejam.
String valor = txtfield.getText();
double valorDecimal = Double.valueOf(valor.replace(",", ".");
String sql = String.format("INSERT INTO tabela (valor) VALUES %.2f", valorDecimal);
Se eu mando executar esse sql da erro, pq no BD eu tenho o campo valor do tipo float que precisa receber campos com valor decimal 2.22 e quando uso %f ae na string sql o valor fica com virgula 2,22. Como fazer para o String.format manter o ponto decimal e assim inserir no BD normalmente ???
olá, não use o string format para isso, é melhor usar o PreparedStatement dessa forma.
public void adiciona(Contato contato) throws SQLException {
// prepared statement para inserção
PreparedStatement stmt = this.connection.prepareStatement("insert into
contatos (nome,email,endereco) values (?, ?, ?)");
// seta os valores
stmt.setString(1,contato.getNome());
stmt.setString(2,contato.getEmail());
stmt.setString(3,contato.getEndereco());
// executa
stmt.execute();
stmt.close();
}
}
Retirei esse código a apostila fj 21 da caelum http://www.caelum.com.br/apostilas/
espero ter ajudado flw
sim sim, eu tbm uso dessa maneira…mas gostaria de saber se com String.format naum tem como manter os decimais.
obrigado.
Use a assinatura do format que aceita um Locale. E passe como local os EUA:
Mas, para banco de dados, use o PreparedStatement, como o colega sugeriu, não o format.