Jump to content

filtragem de dados numa bd


jmalmeida
 Share

Recommended Posts

Boas,

O meu problema é o seguinte, eu tenho uma base de dados e tenho uma frame com varias combobox e jText e queria daí tirar os strings e fazer uma pesquisa na bd e filtrando com esses dados, que é o utilizador que vai inserir para efectuar a pesquisa. Será que alguem me pode dar uma ajuda?

Obrigado

Link to comment
Share on other sites

Concatenas a String?

String sql = "SELECT * FROM <tabela> WHERE <campo> = '" + jtextfield.getText() + "';";

Algo do género mas bem feito já que o exemplo contém um belo ponto para SQL Injection. Mas a ideia é essa, pegar no texto, concatenar ou construir a String SQL que queres executar e executar a pesquisa.

Link to comment
Share on other sites

Sim, podes concatenar a quantidade de campos que quiseres, mas volto a referir que o exemplo é apenas uma dica de como fazer, não faças código desse tipo porque além de lento e pouco fácil de manter, o código tem problemas com SQL Injection.

Com esse tipo de concatenações é possível remover tabelas introduzindo os dados certos nos campos de texto, ganhar previlégios de administração para a base de dados, etc.

Mas sim, a ideia é criar a String construindo o SQL que precisas, mas se tens muitos campos é melhor usares classes como StringBuilder ou StringBuffer ou para melhorar a velocidade e oferecer alguma segurança usares PreparedStatements se estiveres a usar JDBC directamente.

Por exemplo, este link tem algumas informações e código útil: http://www.owasp.org/index.php/Preventing_SQL_Injection_in_Java

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.