2010-04-09 4 views
6

¿Podría alguien darme un enlace sobre cómo crear una consulta en JDBC que obtenga un nombre de variable en la instrucción WHERE, o escribir un ejemplo, para ser más específico, mi código es como la siguiente:Especificación de un nombre de variable en la cláusula QUERY WHERE en JDBC

 private String getLastModified(String url) { 
    String lastModified = null; 
    ResultSet resultSet; 
String query = "select LastModified from CacheTable where " + 
    " URL.equals(url)"; 
    try { 
     resultSet = sqlStatement.executeQuery(query); 
} 

Ahora necesito la sintaxis que me permite devolver un objeto ResultSet, donde URL en el cacheTable es igual url del argumento del método.

gracias

Respuesta

14

La forma más fácil sería

String query = "select LastModified from CacheTable where url = '" + url +"'"; 

Debe utilizar las variables se unen sin embargo:

String query = "select LastModified from CacheTable where url = ?"; 
prepStmt = conn.prepareStatement(query); 
prepStmt.setString(1, url); 
rs = prepStmt.executeQuery(); 
+0

Gracias por su respuesta, ¿cuáles son las otras formas y cómo puedo vincular variables? – Noona

+0

oh ... Pensé que prepareStatement era solo para consultas de actualización. muchas gracias – Noona

+0

+1 Fui demasiado lento. ¡Más café! – Instantsoup

1

que dar un paso más allá que realmente debe utilizar DBUtils de apache-commons o Sping JDBC framework. Una gran cantidad de trabajo JDBC es mundano y propenso a errores debido a la cantidad de pasos involucrados. Ambos enlaces tienen ejemplos de trabajo para que comiences.

Estas bibliotecas de ayuda harán su vida mucho más cómoda :-).

1

Para aclarar una idea errónea: JDBC y SQL son dos cosas completamente diferentes. Las bases de datos solo entienden el lenguaje SQL. Es un (semi) estándar que puedes aprender here. JDBC es solo una API de Java que le permite ejecutar lenguaje SQL usando código Java. Nada menos, nada más. JDBC no es una forma Java de escribir lenguaje SQL más o menos. Es solo el messenger entre el código de Java y la base de datos. Puede aprender JDBC here.

Dicho esto, sí, el PreparedStatement es el camino a seguir para establecer valores en una consulta SQL. No solo facilita la configuración de objetos de Java completos en una cadena de SQL mediante los métodos setXXX(), sino que también lo salva de los ataques SQL injection.

Cuestiones relacionadas