En esta práctica vamos a abordar el
desarrollo de un EJB de Entidad, denominado AccountBean cuya
persistencia está
manejada por contenedor que represente las cuentas de
los usuarios de en un banco. Para cada cuenta mantener la siguiente
información:
- Número de cuenta, un
identificador único asociado a la cuenta. Éste
será utilizado como la llave primaria (
primary
key ).
- Identificador del usuario, el NIA
del usuario titular de la cuenta.
- Saldo, la cantidad monetaria que
tiene la cuenta, a favor o en contra del titular.
- Tipo, el tipo de cuenta
(déposito de ahorro, corriente, corriente comercial,
extranjera, etc.)
- Fecha de apertura, la fecha en que
se le da de alta a la cuenta. Por lo general, esta fecha corresponde a
la fecha del sistema.
Los métodos de negocio y de vida que debe
implementar son:
- Crear una cuenta:
ejbCreate(String
num, String nia, float saldo, String tipo, java.util.Date
apertura) .
- Establecer el contexto del EJB:
setEntityContext(EntityContext ec) .
- Liberar el contexto del EJB:
unsetEntityContext() .
- Recuperar información:
Métodos
get por cada atributo del
bean, por ejemplo, getNo() , getNia() ,
getSaldo(),
...
- Retirar dinero:
retirar(int
cantidad) .
- Ingresar dinero:
ingresar(int
cantidad) .
- Realizar transferencia:
transferirA(String
cuenta, float cantidad) .
Crear una o varias cuentas que permitan validar el
funcionamiento del EJB desarrollado. Para ello podéis
desarrollar un(os) cliente(s) sencillo que permita(n) validar los
métodos de negocio y de vida.
Codificación de las interfaces y clases
- Crear el interfaz remota
Account
que define los métodos de negocio que puede invocar el
cliente.
- Crear el interfaz origen
AccountHome
que define los métodos que le permiten al cliente crear y
buscar un bean. En este caso, el interfaz proporcionará: a)
un método que permite crear el bean a partir de los datos
asociados a una cuenta, devolviendo un objeto que implementa la
interfaz remota; y b) un método que permite buscar una
instancia del bean a partir de la clave primaria, que en este caso es
el número de cuenta.
- Crear la clase abstracta que contiene el
código del EJB,
AccountBean , la
cual contiene los métodos de negocio definidos en el
interfaz remoto Account como
métodos abstractos, los métodos de vida definidos
en el interfaz EntityBean .
Nota: En el capítulo 27
del tutorial de J2EE podéis encontrar información
que os servirá como guía para la
codificación de las interfaces y clases.
Despliegue de un EJB de Entidad manejado por contenedor
- En la ventana del asistente
"New
Enterprise Bean Wizard - Entity Bean Settings" :
- Seleccionar en el combobox
Persistence
Management Type , la opción Container-Managed
Persistence (2.0) . Aparecerán
automáticamente los campos que pueden ser persistentes, en
nuestro caso los seleccionamos todos.
- En el campo
Abtract Schema Name ,
introducir el valor AccountBean .
- En el apartado
Primary Key Class ,
seleccionar en el combobox Select an existing field ,
el valor num [java.lang.String] ,
que es el que corresponde con el tipo de clave primaria del EJB que
estamos desplegando.
- Para realizar el mapeo entre los campos persistentes
del bean y el esquema de la base de datos:
- En el árbol de la
aplicación seleccionar el EJB (por ejemplo,
AccountJAR ).
- En la pestaña
General ,
hacer clic en el botón Sun-specific Settings... .
Se abrirá un diálogo:
- En el campo
View ,
seleccionar CMP Database .
- En el campo
JNDI Name ,
introducir el valor jdbc/bankDB . Esta
conexión JDBC a la base de datos, corresponde a la que
habíamos creado en el ejercicio anterior.
- Verificar que en el combobox
Enterprise
Bean , esté seleccionado el bean.
- Clic en el botón
Create
Database Mappings ... , se abrirá un cuadro de
diálogo:
- Seleccionar la opción
Automatically
Generate Necessary Tables .
- No marcar el campo
Generate
Unique Table Names .
- Seleccionar en el combobox
Datasource
vendor , Derby .
- Clic en
OK .
- Al volver a la ventana anterior,
automáticamente en el apartado
Mappings for
Bean 'NombreBean' , nos aparecerá la
descripción de la tabla que modela nuestro EJB. Es posible
modificar la longitud de los campos tipo String .
- Clic en
Close .
- Guardar los cambios.
|