En las líneas 31 y 32 se invoca el método 

prepareStatement

 de 

Connection

 para crear la instrucción 

PreparedStatement

 llamada 

seleccionarTodasLasPersonas

, la cual selecciona todas las fi las en la tabla 

Direcciones

. En las líneas 35 y 36 se crea la instrucción 

PreparedStatement

 llamada 

seleccionarPersonas-

PorApellido

 con un parámetro. Esta instrucción selecciona todas las fi las en la tabla 

Direcciones

 que coincidan 

con un apellido específi co. Observe el carácter 

?

que se utiliza para especifi car el parámetro apellido. En las líneas 

39 a 42 se crea la instrucción 

PreparedStatement

 llamada 

insertarNuevaPersona

, concuatro parámetros que 

representan el primer nombre, apellido paterno, dirección de e-mail y número telefónico para una nueva entrada. 
De nuevo, observe los caracteres 

?

 que se utilizan para representar estos parámetros.

El método 

obtenerTodasLasPersonas

 (líneas 52 a 91) ejecuta la instrucción 

PreparedStatementselec-

cionarTodasLasPersonas

 (línea 60) mediante una llamada al método 

executeQuery

, el cual devuelve un 

objeto 

ResultSet

 que contiene las fi las que coinciden con la consulta (en este caso, todas las fi las en la tabla 

Direcciones

). En las líneas 61 a 71 se colocan los resultados de la consulta en un objeto 

ArrayList

 de objetos 

Persona

, el cual se devuelve en la línea 90 al método que hizo la llamada. El método 

obtenerPersonasPor-

Apellido

 (líneas 95 a 137) utiliza el método 

setString

 de 

PreparedStatement

 para establecer el parámetro en 

seleccionarPersonasPorApellido

. Después, en la línea 105 se ejecuta la consulta y en las líneas 107 a 117 se 

colocan los resultados de la consulta en un objeto 

ArrayList

 de objetos 

Persona

. En la línea 136 se devuelve el 

objeto 

ArrayList

al método que hizo la llamada. 

El método 

agregarPersona

 (líneas 140 a 163) utiliza el método 

setString

 de 

PreparedStatement

 (líneas 

148 a 151) para establecer los parámetros para la instrucción 

PreparedStatement

 llamada 

insertarNueva-

Persona

. La línea 154 utiliza el método 

executeUpdate

 de 

PreparedStatement

 para insertar un nuevo registro. 

Este método devuelve un entero, el cual indica el número de fi las que se actualizaron (o insertaron) en la base de 
datos. El método 

close

(líneas 166 a 176) simplemente cierra la conexión a la base de datos.

La clase 

MostrarLibretaDirecciones

La aplicación 

MostrarLibretaDirecciones

 (fi gura 25.32) utiliza un objeto de la clase 

ConsultasPersona

 

para interactuar con la base de datos. En la línea 59 se crea el objeto 

ConsultasPersona

 que se utiliza en la 

clase 

MostrarLibretaDirecciones

. Cuando el usuario oprime el objeto 

JButton

 llamado 

Explorar todas las 

entradas

, se hace una llamada al manejador 

botonExplorarActionPerformed

 (líneas 309 a 335). En la línea 

313 se hace una llamada al método 

obtenerTodasLasPersonas

 en el objeto 

ConsultasPersona

 para obtener 

todas las entradas en la base de datos. Después, el usuario puede desplazarse a través de las entradas, usando los 
objetos 

JButtonAnterior

 y 

Siguiente

. Cuando el usuario oprime el objeto 

JButtonBuscar

, se hace una llamada 

al manejador 

botonConsultaActionPerformed

 (líneas 265 a 287). En las líneas 267 y 268 se hace una llama-

da al método 

obtenerPersonasPorApellido

 en el objeto 

ConsultasPersona

, para obtener las entradas en la 

base de datos que coincidan con el apellido paterno especifi cado. Si hay varias entradas de este tipo, el usuario 
puede desplazarse de una entrada a otra mediante los objetos 

JButtonAnterior

 y 

Siguiente

.

Para agregar una nueva entrada a la base de datos 

LibretaDirecciones

, el usuario puede escribir el primer 

nombre, apellido paterno, email y número telefónico (el valor de 

IdDireccion

 se autoincrementará) en los obje-

tos 

JTextField

 y oprimir el objeto 

JButton

 

Insertar nueva entrada

. Cuando el usuario oprime este botón, se 

hace una llamada al manejador 

botonInsertarActionPerformed

 (líneas 338 a 352). En las líneas 340 a 342 

se hace una llamada al método 

agregarPersona

 en el objeto 

ConsultasPersona

, para agregar una nueva entra-

da a la base de datos.

Después, el usuario puede ver distintas entradas oprimiendo los objetos 

JButton

 

Anterior

 o 

Siguiente

, lo 

cual produce llamadas a los métodos 

botonAnteriorActionPerformed

 (líneas 241 a 250) o 

botonSiguien-

 173 

 

 

{

 174 

 

 

 

excepcionSql.printStackTrace();

 175 

 

 

}

// fin de catch

 176 

 

}

// fin del método close

 177 

}

// fin de la interfaz ConsultasPersona

Figura 25.31

  |  Una interfaz que almacena todas las consultas para que las utilice un objeto 

LibretaDirecciones

.

(Parte 4 de 4).

25.11 Objetos 

PreparedStatement

1083

25_MAQ_CAP_25_DEITEL.indd1083

4/19/081:36:00AM