Como imprimir o resultado de um método entre aspas?

9 respostas
Erick_Ribeiro

Bom dia. Eu estou estudando Model-View-Controller e eu criei um pequeno programa para inserir dados no DB.
O problema é que eu não consigo imprimir o resultado do método entre aspas para inserir no banco de dados no formato de String.

Vejam o estado atual da string:

String sql = "INSERT INTO Empregado(" +	"'m_model.getCpf()'" + ',' + "'m_model.getNome()'" + ',' + "'m_model.getCargo()'" + ',' +	m_model.getSalario() + ")";

E o resultado que eu quero é o seguinte:

INSERT INTO Empregado("[CPF removido]", "Erick", "Gerente", 1000)

Obrigado pela ajuda

9 Respostas

Phelps

Deve ser:

String sql = "INSERT INTO Empregado(" + " ' "+m_model.getCpf()+" ' " + "," + " ' "+m_model.getNome()+" ' " + "," + " ' "+m_model.getCargo()+" ' " + "," + " ' " + m_model.getSalario()+" ' " + ")";

renanreismartins

aproveitando que vc está estudando camada de persistencia, de uma olhadinha na classe PreparedStatement, que vai deixar seu código mais elegante

abrasss

Erick_Ribeiro

É isso mesmo, Phelps. Obrigado :thumbup:

Erick_Ribeiro

renanreismartins , Vou ver isso sim, sem dúvidas. Obrigado pela informação!

Fellipex

e usa StringBuilder não String

renanreismartins

Fellipex usar o StringBuilder nesse caso não faz muita diferença (em termos de performance).

Uma vez que são poucas concatenações. Seu uso faz mais sentido dentro de for, while e etc, com muitas iterações

grande abrassssss

Fellipex

obrigado!
Abraços

Gustavo_Marques

Se for usar PreparedStatement então nem precisa concatenar string.

String sql = "insert into Empregado values (?,?,?,?)";
PreparedStatement p = con.prepareStatement(sql);
p.setString(1,m_model.getCPF());
p.setString(2,m_model.getNome());
p.setString(3,m_model.getCargo());
p.setDouble(4,m_model.getSalario());
p.executeUpdate();
p.close();

//não esquece de fehar a connection em um bloco finally

att

pmlm

Usar StringBuilder não faz nem muita nem pouca diferença neste caso. É exactamente igual. Agora o que deveria usar era PreparedStatement em vez de concatenar os parâmetros na query.

Criado 30 de outubro de 2012
Ultima resposta 30 de out. de 2012
Respostas 9
Participantes 6