Jump to content

Recommended Posts

Posted (edited)

Sou iniciante eu estou fazendo uma procura no sql eu estou pegando o id selecionado no combox até

o id funciona eu consigo imprimir o id no servlet o problema que o sql não reconhece o id

String valor = request.getParameter("Pegar");

Connection conn = null;

conn = FabricaConexao.getConexao();

String sql = "SELECT * FROM teste where nome = '"+valor+"' ";

out.println(valor); // ele imprimi o valor corretamente se eu colocar o valor manualmente no sql funciona normal porem eu coloco o valor do request.getParameter o sql não funciona

Statement stm = conn.createStatement();

ResultSet rs = stm.executeQuery(sql);

while (rs.next())

{

out.println(rs.getString("id"));

}

rs.close();

os valor que coloco manualmente é igual ao valor que ele pega pelo request funciona normal se eu fazer manualmente

Edited by sabing
Posted (edited)

Boas sabing, primeiro eu aconselho-te a usar PreparedStatement ou invés de Statement pois com o PreparedStatement tu podes ter uma String Java com o query SQL que pretendes executar como constante que não necessitas de concatenar pois podes substituir qualquer ponto de interrogação “?” por uma variável no query a ser colocada.

Como tal reconstrui-te o código para:

 Public Static Final String QUERY = "SELECT * FROM teste where nome = ?";
 Connection conn = FabricaConexao.getConexao();
 PreparedStatement ps = conn.prepareStatement(QUERY);
 ps.setString(1, valor);
 ResultSet rs = ps.executeQuery();
 while (rs.next()) {
	 rs.getString(1);
 }
 rs.close();
 ps.close();
 conn.close();

Usa o prepared statement, e no método setString defines o valor do “?” com a tua variável dizendo assim que o 1º ? que encontrar mete a variável valor se houvesse mais variáveis colocavas ps.setString(2, valor2);

Quando for para ir buscar os resultados no ResultSet usa as coordenadas da coluna do valor que queres ir buscar ou seja se queres o valor da 1ª coluna id metes getString(1);, mas atenção para outro tipo de variáveis existe outro tipo de métodos do resultset que podes usar getInt(), por exemplo é um deles.

Edited by saca-rolhas

The worst part of censorship is ****

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
×
×
  • 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.