Prepared statements permitem o desenvolvimento de templates de queries SQL que podem ser reutilizadas para efetuar queries iguais com diferentes valores de parâmetros.
Essencialmente o que fazemos é criar a query, que pode ser de qualquer tipo, deixando os valores das variáveis indefinidos. Então podemos especificar valores para os elementos indefinidos antes de executar a query e repetir de acordo com a necessidade do código.
Prepared statements são criados a partir de um objeto Connection, ou seja, são iguais a objetos Statement. Na hora de construir a query, substitua os valores das variáveis com o simbolo de interrogação:
Antes de executar a query devemos especificar os valores dos parâmetros indefinidos. O objeto PreparedStatement suporta vários métodos, cada um com o fim de definir um valor de um tipo específico (int, long, String, etc). Cada método recebe dois argumentos, um índice indicando qual o parâmetro que queremos acessar e o valor a ser inserido. O primeiro parâmetro tem o índice 1 (e não 0). Assim, para exibirmos os clientes com os códigos maiores que 200 e pertencentes a categoria "Novos", poderíamos usar a seguinte abordagem:
Uma vez criados os Prepared statements, você pode reutilizá-los a vontade. Isso trás mais desempenho ao banco de dados, já que este precisará compilar as instruções apenas uma vez.
eu sei programação é coisa de loco, mas quem disse que sou normal
Essencialmente o que fazemos é criar a query, que pode ser de qualquer tipo, deixando os valores das variáveis indefinidos. Então podemos especificar valores para os elementos indefinidos antes de executar a query e repetir de acordo com a necessidade do código.
Prepared statements são criados a partir de um objeto Connection, ou seja, são iguais a objetos Statement. Na hora de construir a query, substitua os valores das variáveis com o simbolo de interrogação:
Código:
String query = "SELECT * FROM CLIENTES WHERE CODIGO > ? AND
CATEGORIA = ?"
PreparedStatement statement = connection.preparedStatement(query);
Antes de executar a query devemos especificar os valores dos parâmetros indefinidos. O objeto PreparedStatement suporta vários métodos, cada um com o fim de definir um valor de um tipo específico (int, long, String, etc). Cada método recebe dois argumentos, um índice indicando qual o parâmetro que queremos acessar e o valor a ser inserido. O primeiro parâmetro tem o índice 1 (e não 0). Assim, para exibirmos os clientes com os códigos maiores que 200 e pertencentes a categoria "Novos", poderíamos usar a seguinte abordagem:
Código:
statement.setInt(1, 200);
statement.setStrig(2, "Novos");
ResultSet rs = statement.executeQuery();
Uma vez criados os Prepared statements, você pode reutilizá-los a vontade. Isso trás mais desempenho ao banco de dados, já que este precisará compilar as instruções apenas uma vez.
eu sei programação é coisa de loco, mas quem disse que sou normal