java.sql.PreparedStatement (1) java.sql.PreparedStatement (2) ❚ Interface que representa uma operação SQL pré-compilada ❚ Para criar um objeto do tipo PreparedStatement usa-se o método prepareStatement(String sql) do objeto Connection ❚ Diferente da criação do objeto Statement, é necessário passar o comando SQL como parâmetro no método ❚ O uso do objeto PreparedStatement pode acelerar a execução dos comandos SQL, pois estes estarão pré-compilados ❚ O objeto PreparedStatement permite o uso de parâmetros nos comandos SQL, permitindo o uso do mesmo comando SQL, mas alterando alguns valores dinamicamente java.sql.PreparedStatement (3) java.sql.PreparedStatement (4) ❚ Os parâmetros são indicados através do ponto de interrogação ❚ Ex.: conexao.prepareStatement(“select * from pedido where total > ?”); ❚ Para atribuir valores aos parâmetros usa-se os métodos setXXX(int index, XXX valor), onde XXX é o tipo esperado. Ex.: conexao.prepareStatement(“select * from pedido where total > ?”); setFloat(1, 30.5); //”select * from pedido where total > 30.5” public boolean clienteExiste(String telefone) { String consultaSQL = “select count(*) from cliente where cli_telefone = ?”; PreparedStatement ps = conexao.prepareStatement(consultaSQL); ps.setString(1, telefone); ResultSet rs = ps.executeQuery(); return rs.next(); } public String getCliente (String telefone) { String consultaSQL = “select cli_nome from cliente where cli_telefone = ?”; PreparedStatement ps = conexao.prepareStatement(consultaSQL); ps.setString(1, telefone); ResultSet rs = ps.executeQuery(); if (rs.next()) then return rs.getString(“cli_nome”); else return “Cliente não existe”; } Transações (1) ❚ Uma transação é uma unidade de trabalho lógica. sendo assim, um conjunto de instruções sql pode ser agregado em uma transação a fim de representar uma única operação. ❚ Em uma sessão através do pacote jdbc, cada instrução sql é considerada uma transação por padrão, a menos que seja explicitamente modificada através do método setAutoCommit(false) de Connection Transações (2) ❚ Métodos da classe Connection, utilizados no controle de transações setAutoCommit(boolean autoCommit) - Indica se cada instrução SQL é considerada uma transação. commit() - Confirma a execução de todas as instruções SQL realizadas. rollback() - Desfaz o processamento das instruções SQL realizadas.