En esta aplicación de ejemplo del Controlador Microsoft JDBC para SQL Server se muestra cómo recuperar una conjunto de datos actualizable de una base de datos de SQL Server. A continuación, mediante los métodos del objeto SQLServerResultSet, inserta, modifica y, finalmente, elimina un fila de datos del conjunto de resultados.

El archivo de código para este ejemplo se llama updateRS.java y se encuentra en la siguiente ubicación:

<directorio de instalación>\sqljdbc_<version>\<language>\help\samples\resultsets

Requisitos

Para ejecutar esta aplicación de ejemplo, debe configurar la ruta de clase para que incluya el archivo sqljdbc.jar o el archivo sqljdbc4.jar. Si en la ruta de clase falta una entrada para sqljdbc.jar o sqljdbc4.jar, la aplicación de ejemplo genera la excepción común "Clase no encontrada". Además, debe tener acceso a la base de datos de ejemplo SQL Server 2005 AdventureWorks. Para obtener más información acerca de cómo establecer la ruta de clase (classpath), vea Usar el controlador JDBC.

El Controlador Microsoft JDBC para SQL Server proporciona los archivos de biblioteca de clases sqljdbc.jar y sqljdbc4.jar que hay que usar dependiendo de su configuración preferida de Java Runtime Environment (JRE). Para obtener más información acerca del archivo JAR que hay que elegir, vea Requisitos del sistema para el controlador JDBC.

Ejemplo

En el siguiente ejemplo, el código muestra realiza una conexión a la base de datos de ejemplo AdventureWorks. A continuación, si se usa una instrucción SQL con el objeto SQLServerStatement, se ejecuta la instrucción SQL y los datos devueltos se incluyen en un objeto SQLServerResultSet actualizable.

Después, el código muestra usa el método moveToInsertRow para mover el cursor del conjunto de resultados para insertar la fila, usa una serie de métodos updateString para insertar los datos en la nueva fila y, a continuación, llama al método insertRow para volver a almacenar la nueva fila de datos en la base de datos.

Una vez insertada la nueva fila de datos, el código muestra usa una instrucción SQL para recuperar la fila insertada previamente y, a continuación, usa la combinación de los métodos updateString y updateRow para actualizar la fila de datos y volver a almacenarla en la base de datos.

Finalmente, el código muestra recupera la fila de datos actualizada previamente y, a continuación, la elimina de la base de datos con el método deleteRow.

import java.sql.*;

public class updateRS {

   public static void main(String[] args) {

      // Create a variable for the connection string.
      String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
            "databaseName=AdventureWorks;integratedSecurity=true;";

      // Declare the JDBC objects.
      Connection con = null;
      Statement stmt = null;
      ResultSet rs = null;
 
      try {
         
         // Establish the connection.
         Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
         con = DriverManager.getConnection(connectionUrl);

         // Create and execute an SQL statement, retrieving an updateable result set.
         String SQL = "SELECT * FROM HumanResources.Department;";
         stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
         rs = stmt.executeQuery(SQL);

         // Insert a row of data.
         rs.moveToInsertRow();
         rs.updateString("Name", "Accounting");
         rs.updateString("GroupName", "Executive General and Administration");
         rs.updateString("ModifiedDate", "08/01/2006");
         rs.insertRow();

         // Retrieve the inserted row of data and display it.
         SQL = "SELECT * FROM HumanResources.Department WHERE Name = 'Accounting';";
         rs = stmt.executeQuery(SQL);
         displayRow("ADDED ROW", rs);

         // Update the row of data.
         rs.first();
         rs.updateString("GroupName", "Finance");
         rs.updateRow();

         // Retrieve the updated row of data and display it.
         rs = stmt.executeQuery(SQL);
         displayRow("UPDATED ROW", rs);

         // Delete the row of data.
         rs.first();
         rs.deleteRow();
         System.out.println("ROW DELETED");
      }

      // Handle any errors that may have occurred.
      catch (Exception e) {
         e.printStackTrace();
      }

      finally {
         if (rs != null) try { rs.close(); } catch(Exception e) {}
         if (stmt != null) try { stmt.close(); } catch(Exception e) {}
         if (con != null) try { con.close(); } catch(Exception e) {}
      }
   }

   private static void displayRow(String title, ResultSet rs) {
      try {
         System.out.println(title);
         while (rs.next()) {
            System.out.println(rs.getString("Name") + " : " + rs.getString("GroupName"));
            System.out.println();
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

Vea también