SQL JAVA dúvida

Minha dúvida é relativamente simples, eu tenho o java conectado com o oracle, mas eu gostaria que o usuário digitasse algo e fosse guardado em uma variável e depois com esta variável fazer a busca com o SELECT, esta é uma parte do meu código :

String sql = "select * from funcionários ";

Desta forma roda legal ! Ele retorna tudo que está na tabela funcionário, mas eu gostaria que este SELECT fosse feito de acordo com o que o usuário digitasse, e depois fosse guardado dentro de uma variável ou algo do tipo por exemplo :

String textoDigitado = " blá blá blá";
String sql = "select depatamentoFuncionário from funcionario where codigo=textoDigitado ";

Vocês viram que agora eu quero inserir uma variável textoDigitado com valor digitado pelo usuário dentro do SELECT ? Mas o Java considera aquele SELECT como um texto simples e não reconhece que eu quero inserir uma dentro do SELECT. pode ser desta forma ou de outra, não importa, com tanto que uma variável com valor definido pelo usuário no java possa entrar no SELECT.

Muito obrigado !
Forte abraço !

Não entendi muito bem o teu problema


String textoDigitado = " blá blá blá"; 
String sql = "select depatamentoFuncionário from funcionario where codigo = "+textoDigitado; 

Vc tentou assim??

Outra coisa MUITO IMPORTANTE, não fica criando topicos repetidos, tu criou dois topicos no Basico e um no avançado, cria o topico e espera alguem responder…

Para isso se usa PreparedStatement:

[code]String textoDigitado = " blá blá blá";
String sql = “select depatamentoFuncionário from funcionario where codigo = ?”

PreparedStament stmt = conn.prepareStatement(sql);
stmt.setString(1, textoDigitado);
ResultSet rs = stmt.executeQuery();[/code]

Só certifique-se que o textoDigitado é mesmo o código.

Tópico movido para o fórum de persistência.

[quote=RodrigoKaos]Não entendi muito bem o teu problema


String textoDigitado = " blá blá blá"; 
String sql = "select depatamentoFuncionário from funcionario where codigo = "+textoDigitado; 

Vc tentou assim??[/quote]

Muito obrigado meu amigo !

Dei mole, não faço mais, valeu mesmo camarada.

[quote=ViniGodoy]Para isso se usa PreparedStatement:

[code]String textoDigitado = " blá blá blá";
String sql = “select depatamentoFuncionário from funcionario where codigo = ?”

PreparedStament stmt = conn.prepareStatement(sql);
stmt.setString(1, textoDigitado);
ResultSet rs = stmt.executeQuery();[/code]

Só certifique-se que o textoDigitado é mesmo o código.
[/quote]

Putz , vc é o cara, muito obrigado mesmo pela ajuda ! resolveu aqui ! :slight_smile:

O PreparedStatement é melhor que a concatenação. Ela não dá problemas caso o cara queira, por exemplo, buscar por “MacDonald’s”. Note que o apóstrofe ia ferrar seu SQL se você estivesse só concatenando.
Essa solução também é independente do formato de datas ou de números adotado pelo banco.