sabing Posted May 26, 2013 at 04:18 PM Report #509051 Posted May 26, 2013 at 04:18 PM (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 May 26, 2013 at 04:20 PM by sabing
saca-rolhas Posted May 27, 2013 at 01:52 PM Report #509185 Posted May 27, 2013 at 01:52 PM (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 May 27, 2013 at 01:56 PM by saca-rolhas The worst part of censorship is ****
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now