Introducción a las declaraciones

Todas las consultas SQL se pueden dividir condicionalmente en dos grupos:

  • Recuperación de datos : estos incluyen la instrucción SELECT .
  • Modificación de datos : incluyen instrucciones INSERT , UPDATE y DELETE .

Para el primer grupo, se utiliza el método de interfaz de Declaración que ya nos es familiar : executeQuery() . En principio, este método es suficiente para comenzar. Cubre un porcentaje muy grande de consultas que necesitará usar en un trabajo real.

Veremos más opciones más adelante, pero por ahora, le aconsejo que recuerde: si solo desea obtener datos de una tabla, entonces el método executeQuery () en la gran mayoría de los casos será la elección correcta.

Para el segundo grupo de solicitudes, debe usar otro método de la interfaz de declaración: executeUpdate() . A diferencia del método executeQuery() , que devuelve un ResultSet, este método devuelve un número entero que le indica cuántas filas de la tabla se cambiaron cuando se ejecutó su consulta .

Por ejemplo, puede eliminar todas las filas con la instrucción DELETE FROM employee (así que tenga mucho cuidado). En este caso, el método executeUpdate() devolverá el número de filas eliminadas. En algunas situaciones, conocer la cantidad de filas cambiadas puede ser útil para crear algoritmos para trabajar con datos.

En principio, podemos terminar esta pregunta: ya hemos visto lo principal. Para la obtención de datos: executeQuery() . Para cambiar los datos, ejecute Actualizar() .

Obtenga el número de usuarios en la tabla de usuarios usando el método executeQuery() :


	ResultSet results = statement.executeQuery("SELECT Count(*) FROM user");
	results.next();
    int count = results.getInt(1);

ejecutarActualizar()

El método executeUpdate() se usa cuando su consulta cambia algo en una tabla. Podría ser cualquier cosa:

  • Declaración de ACTUALIZACIÓN
  • INSERTAR instrucción
  • Declaración DELETE
  • Declaración de PROCEDIMIENTO DE LLAMADA

Este método devuelve el número de filas modificadas (o eliminadas).

Escribamos una solicitud que aumente el salario de todos nuestros empleados en 1000 rublos.


   int rowsCount = statement.executeUpdate("UPDATE  employee SET salary = salary+1000");

Después de ejecutar este código, en mi tabla devolvió el número 6. Mi tabla tenía 6 filas. Así que todas las líneas han sido cambiadas.

ejecutar()

A veces, pueden surgir situaciones en su vida en las que no sepa exactamente qué solicitud debe ejecutar: una selección o un cambio de datos. En este caso, los creadores de JDBC le agregaron otro método genérico: execute() .

Este método se puede utilizar en lugar de los métodos executeQuery() y executeUpdate() . ¿Recuerdas cómo diferían estos métodos? Bien. Tipo de resultado. Por lo tanto, a los creadores de JDBC se les ocurrió una solución de este tipo.

El método de ejecución () devuelve booleano. Si este valor es true , entonces se estaba realizando una solicitud de obtención de datos y debe llamar al método getResultSet() para obtener los datos. Ejemplo:


    boolean hasResults = statement.execute("SELECT Count(*) FROM user");
    if ( hasResults ) {
        	ResultSet results =  statement.getResultSet();
        	results.next();
        	int count = results.getInt(1);
 	}

Si este valor es false , entonces se estaba realizando una solicitud de cambio de datos y debe llamar al método getUpdateCount() para cambiar la cantidad de filas. Ejemplo:


    boolean hasResults = statement.execute("UPDATE  employee SET salary = salary+1000");
    if ( !hasResults ) {
      	int count = statement.getUpdateCount();
 	}

Escribamos un método que muestre el resultado de una consulta:


	public void executeAndPrintSQLQuery(String sqlQuery) {
 
        boolean hasResults = statement.execute(sqlQuery);
        if ( hasResults ) {
 	          ResultSet results =  statement.getResultSet();
           	System.out.println(“Your request lines below:);
 
           	while (results.next()) {
 	                 Integer id = results.getInt(1);
     	             String name = results.getString(2);
                      System.out.println(results.getRow() + ". " + id + "\t"+ name);
  	        }
       }
 	  else {
            int count = statement.getUpdateCount();
        	System.out.println(“Number of name strings:+ count);
  	}
}

Así es como se suele utilizar en la práctica el método execute() .