Como passar parametro para query?

3 respostas
F

Exemplo:
INSERT INTO tbImpressora VALUES (1, ‘HP’, ‘c:’);

Como eu passaria os parametros de de uma classe.
no vb.net se colocava aspas e & comercial.
Select * from tb impressora where cdDriver = "& driver &"
Como seria no java.

3 Respostas

T

Cara, normalmente eu uso uma classe só para a comunicação com o banco e um método para as instruções SQL.

tipo assim

public void insert(String query){ ... st.executeUpdate(query); }

e chamo esse método passando a query como parâmetro assim:

String update = "INSERT INTO tbImpressora VALUES ('" + variavel + "')"; conectaBanco.insert(update);

Acho que é isso que você estava procurando.

J

Veja se é isso que quer:

String driver = "abc";

PreparedStatement stmt = conexao.prepareStatement("select * from tb impressora where cdDriver = ?");

stmt.setString(1, driver);

ResultSet res = stmt.executeQuery();
D

Aproveitando o ensejo eu gostaria de saber se alguem conhece a explicação técnica para a diferença de maneiras de passar parametros para query:

Uma maneira seria concatenar variáveis no sql por exemplo:

ou podemos fazer utilizando o ? na query e metodos do prepared statement para passar os parametros, como por exemplo:

PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setInt(2, 110592)

Estou pesquisando aqui em alguns sites e ainda não achei uma explicação técnica que me aponte as diferenças.

Criado 14 de novembro de 2006
Ultima resposta 8 de jan. de 2007
Respostas 3
Participantes 4