Pensando nas boas práticas de programação e novamente na segurança me deparei com o PreparedStatement , basicamente prepara o sql sobre uma string realizando su
Realizar o PreparedStatement (Java)
Pensando nas boas práticas de programação e novamente na segurança me deparei com o PreparedStatement, basicamente prepara o sql sobre uma string realizando substituições e validações, antes de ser executado no Banco de dados.
Os sinais de interrogação na string servem para identificar onde deve ser substituído os valores dos set's de acordo com a posição ao qual foram encontrados na String SQL.
Vários tipos de set's, seguem alguns exemplos:- setString- setBinaryStream- setDate- setBoolean
//Instanciando a conexãoConexao con=new Conexao();//Chamada do método que tem como retorno ConnectionConnection con2 = con.Conecta();//String com o sql desejado com os valores substituídos pelo sinal de interrogação String sql = "SELECT * FROM tbusuario WHERE login = ? AND senha = ?";PreparedStatement pstm = con2.prepareStatement(sql);//Preenchendo os valores dos Set's, neste caso com os valores da instância usuário indicada pelo usu//O número 1 e 2 indica a posição da ? que deve ser substituido os valores.pstm.setString(1,usu.getNomeUsuario());pstm.setString(2,usu.getSenha());//Executando a query preparada e retornando para o resultSetcon.resultSet=pstm.executeQuery();
Não precisará se preocupar com utilizar ou não utilizar aspas no sql, devido aos set's.
Outra coisa muito boa na prática da utilização do PreparedStatement é o bloqueio da ameaça do SQL Injection.