teoricamente falando, qual a diferença ?
seria apenas q a 1ª enxuga o sql e o código não precisa ser recompilado?
thanks !!!
PreparedStatements <> Statements?
M
3 Respostas
A diferença é que em preparedstatement sua query fica pré compilada.
Portanto tende a ser mais rápida, principalmente quando tem um número muito grande de queries iguais…
Existem até sistemas que fazem pool de preparedstatements, por esse motivo…
Pesquisando, gostei desta thread aqui:
como o PreparedStatements é pré-compilado, ele é seguro contra sql-injections.
T
O material que o artigo cita (um livro sobre Oracle + JDBC) usa o driver para a versão 7 do Oracle.
Desde aquele tempo, o desempenho tanto do Oracle quanto do driver JDBC devem ter melhorado sensivelmente.
De qualquer maneira, sempre recomendamos usar PreparedStatements devido aos seguintes benefícios:
- Você não precisa se preocupar se o formato para datas é MM/DD/AAAA ou AAAA-MM-DD
- Você não precisa se preocupar se o valor de doze mil, trezentos e quarenta e cinco reais e sessenta e sete centavos é "12.345,67" ou "12,345.67"
- Você não precisa se preocupar em duplicar as aspas (“José Sant’Anna” -> ‘José Sant’‘Anna’ em SQL)
- Você não precisa se preocupar muito com SQL Injection (exceto naqueles poucos bancos de dados cujo driver JDBC foram mal escritos e criam uma String SQL a partir do Prepared Statement, em vez de mandá-los em binário. Um desses bancos é o MySQL - os drivers mais antigos têm muitos bugs.)
- Em alguns bancos (como o SQL Server e o Oracle) PreparedStatements podem ser até mais rápidos, dependendo da quantidade de vezes que se reusa o mesmo PreparedStatement.
Criado 5 de fevereiro de 2007
Ultima resposta 5 de fev. de 2007
Respostas 3
Participantes 4
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo