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