Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > ayuda

hola necesito ayuda soy nuevo en java pero tengo una base de datos mysql y quiero hacer una consulta a dos columnas de una tabla desde netbeans este es el codigo pero no me funciona si aplico AND
String sql ="select * from beneficiariosbasico where codigo= AND nombre=" + tbBeneficiarios.getValueAt(fila,0);

agosto 19, 2015 | Registered Commentermiranda

La sentencia SQL es errónea. Primero, esta parte de código: "where codigo= AND" no es válida, antes del AND tiene que tener un valor, o "codigo IS NULL" si lo que quieres son los que no tengan código.
Esta parte "nombre=" + tbBeneficiarios.getValueAt(fila,0);" también está mal, contando que sea un String, tienes que introducir comillas simples antes y después para la sentencia SQL:
"nombre = '" + tbBeneficiarios.getValueAt(fila,0) + "'";

agosto 19, 2015 | Unregistered CommenterManu

Nunca concatenes valores en una consulta, la hace vulnerable a SQLi, a menos que dicha consulta no acceda a datos críticos (aun así no se recomienda). Usa siempre PreparedStatement en lugar de Statement.


String query = "SELECT * FROM beneficiariosbasico WHERE codigo = ? AND nombre = ?";

try (Connection connection = ConnectionHelper.getConnection();
PreparedStatement pst = con.prepareStatement(query)) {

String value = tbBenificarios.getValueAt(X, Y);
pst.setString(1, value);
pst.setString(2, value);

ResultSet rs = pst.executeQuery();

// recorres los resultados y haces algo
while (rs.next()) {

}
} catch (SQLException e) {
// manejas la excepción
}

En el código anterior no es necesario un bloque finally para cerrar conexiones. Las conexiones se cierran automáticamente al finalizar el bloque try.

agosto 19, 2015 | Unregistered CommenterJMonkee