| Altas, bajas y modificaciones |
| Paso 3: Operativa |
Utilización de las sentencias SELECT, INSERT, UPDATE Y DELETE desde una aplicación Java
Este es el código correspondiente al método hazSelect()
public void hazSelect() {
String query = "SELECT * FROM " + tabla;
try {
resultSet = statement.executeQuery(query);
System.out.println("resultSet: " + resultSet);
while (resultSet.next()) {
valorCampo1 = resultSet.getInt(campo1);
valorCampo2 = resultSet.getString(campo2);
valorCampo3 = resultSet.getDouble(campo3);
valorCampo4 = resultSet.getInt(campo4);
System.out.println(valorCampo1 + " " + valorCampo2 + " " + valorCampo3 + " " + valorCampo4);
}
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println("-------------------------------");
} |
- String query = "SELECT * FROM " + tabla;
- creamos un String con la sentencia SELECT de SQL
- resultSet = statement.executeQuery(query);
- con el método executeQuery(query)realizamos consultas a la Base de Datos
- llenamos el maletero del coche con maletas, para que éstas sean dispensadas a la Base de Datos
- este método nos devuelver un Objeto de tipo ResultSet que encapsula el contenido de la consulta a la Base de Datos
- while (resultSet.next()) {
- un Objeto de tipo ResulSet funciona como un cursor de SQL, ya que permite examinar los datos de la sentencia SELECT fila a fila.
- cuando acabamos de obtener un Objeto de tipo ResultSet el cursor está apuntando a la fila cero de dicho Objeto
- la primera vez que en el bucle while invocamos al método next() el cursor se situa en la fila uno que tendrá contenido si la sentencia SELECT ha encontrado algún registro en la BDS
- para avanzar de una fila a la siguiente utilizamos el método next() que devuelve un valor booleano. El valor false indica que no existen más filas en el ResultSet
- valorCampo1 = resultSet.getInt(campo1);
valorCampo2 = resultSet.getString(campo2);
valorCampo3 = resultSet.getDouble(campo3);
valorCampo4 = resultSet.getInt(campo4);
- los métods getInt(...), getString(...)y getDouble(...) realizan una traducción del tipo de datos de la BDS a los tipos de datos del lenguaje Java.
Esta es la salida tras ejecutar la aplicación con el método hazSelect() implementado

- esta salida nos muestra el resultado de la ejecución de la sentencia
- System.out.println("resultSet: " + resultSet);
- aquí podemos ver claramente como los fabricantes de Bases de Datos implementan las Interfaces de las APIs JDBC
- en este caso concreto podemos advertir que un Objeto de tipo sun.jdbc.odbc.JdbcOdbcResultSet perteneciente al driver JDBC-ODBC Bridge implementa la Interfaz java.sql.ResultSet
- por tanto la Interfaz java.sql.ResultSet está jugando el papel de factoría abstracta mientras que el Objeto de tipo sun.jdbc.odbc.JdbcOdbcResultSet está desempeñando el papel de factoría concreta
- el número @1864d4c1 nos indica la dirección de memoria donde se encuentra ubicado el Objeto de tipo sun.jdbc.odbc.JdbcOdbcResultSet
- System.out.println(valorCampo1 + " " + valorCampo2 + " " + valorCampo3 + " " +valorCampo4);
- aquí vemos el resultado de haber realizado la ejecución SQL de la sentencia SELECT * FROM PRODUCTOS
Este es el código correspondiente al método hazSelectWhere()
public void hazSelectWhere() {
String query = "SELECT * FROM " + tabla + " where " + campo1 + "=" + valorCampo1;
try {
resultSet = statement.executeQuery(query);
while (resultSet.next()) {
valorCampo1 = resultSet.getInt(campo1);
valorCampo2 = resultSet.getString(campo2);
valorCampo3 = resultSet.getDouble(campo3);
valorCampo4 = resultSet.getInt(campo4);
System.out.println(valorCampo1 + " " + valorCampo2 + " " + valorCampo3 + " " + valorCampo4);
}
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.println("-------------------------------");
}
|
Esta es la salida tras ejecutar la aplicación con el método hazSelectWhere() implementado

Este es el código correspondiente al método hazInsert()
public void hazInsert() {
try {
statement.executeUpdate("insert into " + tabla +
" values (" + valorCampo1 + ",'" + valorCampo2 + "'," +
valorCampo3 + "," + valorCampo4 + ")");
}
catch(SQLException e) {
e.printStackTrace();
}
} |
- statement.executeUpdate("insert into " + tabla +
" values (" + valorCampo1 + ",'" + valorCampo2 + "'," +
valorCampo3 + "," + valorCampo4 + ")");
- añadimos un nuevo registro a la tabla
- se utiliza el método executeUpdate(...) con las sentencias SQL: INSERT, UPDATE y DELETE.
Este es el código correspondiente al método hazUpdate()
public void hazUpdate() {
try {
statement.executeUpdate("update " + tabla + " set " +
campo2 + " ='" + valorCampo2 + "', " +
campo3 + " =" + valorCampo3 + ", " +
campo4 + " =" + valorCampo4 + " " +
"where " + campo1 + " = " + valorCampo1);
}
catch(SQLException e) {
e.printStackTrace();
}
} |
- statement.executeUpdate("update " + tabla + " set " +
campo2 + " ='" + valorCampo2 + "', " +
campo3 + " =" + valorCampo3 + ", " +
campo4 + " =" + valorCampo4 + " " +
"where " + campo1 + " = " + valorCampo1);
- modificamos un registro de la tabla
- se utiliza el método executeUpdate(...) con las sentencias SQL, INSERT, UPDATE y DELETE.
Este es el código correspondiente al método hazDelete()
public void hazDelete() {
try {
statement.executeUpdate("delete from " + tabla +
" where " + campo1 + " = " + valorCampo1);
}
catch(SQLException e) {
e.printStackTrace();
}
}
|
- statement.executeUpdate("delete from " + tabla +
" where " + campo1 + " = " + valorCampo1);
- borramos los campos de un registro ya existente de una tabla
- se utiliza el método executeUpdate(...) con las sentencias SQL: INSERT, UPDATE y DELETE.