CMP Entity Beans y MySql

0
29458

CMP Entity Bean con MySql

Como comentamos en el anteriortutorial, la persistencia de un Entity Bean
puede ser gestionada por el contenedor.

En este tutorial vamos a ver los pequeños cambios que debemos realizar sobre
nuestro EJB, del mismo modo que os vamos a enseñar el truquillo para poder usar
la implementación de referencia de J2EE de Sun (J2EE RI) para usar MySql como
base de datos.

Como podemos suponer, pocas cosas deben cambiar… aunque hay algunas
sutilizas.

Lo que es realmente importante, es la definición del despliegue

 

Definición de interfaz Remoto

El único cambio, que además tiene mucho sentido, es la eliminación de la
definición del metodo setId.

Digo que tiene sentido porque cambiar la clave primaria normalmente requiere de otras precauciones.

 

Definición del Interfaz Home

La definicón del interfaz Home, en este caso cambia en el tipo de retorno
del metodo findByPrimaryKey

 

Implementación del Bean

Hay que realizar una definición de métodos abstractos

    public
abstract String getConcepto();
    public abstract void setConcepto(String sConcepto);
    public abstract String getFecha();
    public abstract void setFecha(String sFecha);
    public abstract String getDireccion();
    public abstract void setDireccion(String sDireccion);
    public abstract String getTitular();
    public abstract void setTitular(String sTitular);
    public abstract String getCif() ;
    public abstract void setCif(String sCif);
    public abstract String getId();
    public abstract void setId(String iId);
    public abstract double getCantidad();
    public abstract void setCantidad(double dCantidad);

Para asignar los valores del Bean, debemos invocar a los metodos, en el
ejbCreate

Por último, lo único que queda por hacer en el código, es borrar el
código que gestiona la persistencia.

Despliegue de la aplicación

Añadimos el EJB como hicimos con los anteriores

En la lengüeta de Entity asignamos un nombre para nuestras consultas EJB
(MICMP). Deberia ser un poco más estricto en la notación pero asi se ve mejor
…. 😉

Al pinchar el botón de Deployment Settings, aparece la configuración de la
base de datos.

Pulsamos Database Settings …

Asignamos el nombre JNDI de la base de datos (ver más abajo)

Pincharemos el botón de generar Default SQL

Y ya tenemos lista para funcionar nuestra aplicación. Ahora vamos a
configurar el entorno para poder usar MySql
(en Windows)

Registro de MySql

Pinchamos en la opción de configurar el servidor

Registramos un nuevo driver y nombre JNDI para la base de datos que queremos
utilizar

Hay un problema al hacer esto…. y es que las consultas SQL que genera el
CMP entity Bean, tienen dobles comillas.

Esto hace que falle…. el truco esta en cambiar la configuración de MySql
añadiendo un parámetro sql_mode=ansi

Dependiendo del sistema, se hace de un modo y otro. Nosotros como tenemos
instalado MySql como un servicio en Windows, vamos a cambiar el fichero de
configuración .

Ojo con ponerlo donde esta especificado y no meter espacios entre medias (en
el fichero My.ini)

Para que J2EE RI encuentre el driver JDBC de MySQL, hay que descargarselo de
internet … (podeis ver el tutorial dedicado a su instalación yprueba) y
modificar el fichero userconfig.bat

Debemos añadir el trayecto donde lo hemos instalado

Si ahora ejecutamos un código para probar nuestro EJB CMP…. hemos
cambiado  en EJB de sesión …..

Y tambien un servlet

Si consultamos la BBDD, veremos que se ha creado la tabla e
insertados los elementos.

Podeis descargar todo elcódigo aquí …

Ya hemos cubierto otra fase ….. ahora tengo otra pregunta

¿Podemos intercambiar en el código el EJB con la persistencia
controlada por el Bean y por el contenedor?

Sobre
el Autor ..

Dejar respuesta

Please enter your comment!
Please enter your name here