JPA: modelo de persistencia

En este artículo crearemos un modelo de persistencia para nuestra pequeña aplicación de gestión de empleados. Basado en un anterior post donde creamos una aplicación básica de JDeveloper.

Sobre el proyecto en el menú contextual, New > EJB > Entities From Tables. Vamos a utilizar la tecnología EJB 3.0, anotando los beans de entidad como JPA 2.0:

Creating persistence model

Seleccionamos las tablas Departaments y Employees.

Como vimos en un artículo anterior, se puede obtener el diagrama de una base de datos ya hecha. Yo me lo he creado en el paquete lebrijo.diagrams:

Entity-RelationShip diagram

Podemos crear un New > EJB Diagram, y arrastrando las entidades anteriormente creada, tendremos el dibujo entero:

EJB diagram

En los dos beans refactorizaré el atributo employees por manager, ya que define más claramente la relación.

Refactoring manage relation

Esto se actualiza automáticamente en el diagrama de EJB (en teoria, en realidad hay que volver a arrastrar las entidades).

Como último ejercicio, podemos crear la consulta de encontrar por nombre, ampliando la anotación de consultas de la entidad Employees:

@Entity
@NamedQueries({
@NamedQuery(name = "Employees.findAll", query = "select o from Employees o")
,
@NamedQuery(name = "Employees.findByName", query = "select o from Employees o where o.firstName like :p_name")
})

Weblogic securizado con el proveedor SQLAuthenticator

En un artículo anterior vimos como asegurar un Web Service con autenticación básica (esto podría servir para cualquier página en nuestra aplicación). Esto lo hacíamos creando usuarios en el DefaultAuthenticator de Weblogic (user).

Hoy vamos a crear un SQLAuthenticator en Weblogic, de forma que tome esos usuarios y grupos de la base de datos.

Read the rest of this entry »

Arquitectura JDeveloper con Weblogic

Parece una obviedad que la mejor herramienta para desarrollar sobre Weblogic/OracleDB es JDeveloper. Pero para mi, hasta ahora, no era tan obvio, ya que Eclipse es mi IDE preferido, ya que es el estándar para el desarrollo JAVA (Jboss, Spring, Android,…).

Si tu arquitectura es Oracle/Weblogic, no tienes miedo al cambio y tu obsesión es incrementar tu productividad, tu herramienta es JDeveloper. Voy a hacer una serie de artículos tratando de demostrar este punto. Pero si quieres ir abriendo boca te recomiendo que veas este video, veras como puede ser realmente sencillo hacer aplicaciones RIA en entornos empresariales muy complejos.

Read the rest of this entry »

JPA: Implementando la persistencia con EclipseLink

Veamos como implementar la persistencia en un proyecto de Eclipse con el estándar JPA implementado por EclipseLink.

Nos basaremos en el proyecto de Eclipse creado en el artículo anterior.  En las propiedades (botón derecho) del proyecto añadimos el “poder” de manejar Entidades JPA, añadiendo el Facet:

Adding JPA facet

Utilizaremos EclipseLink 1.1.2 ya que es la implementación de JPA por defecto en WebLogic 11g.

Generar Entidades desde las tablas

Sobre el proyecto en el menu contextual (botón derecho), JPA > Generate Entities from Tables… Elegimos la conexión SCHOOL creada anteriormente, y las tablas REGISTRY y SCHOOLCERTIFICATES. Generando las entidades en el paquete lebrijo.school.model:

Generating entities from tables

Para mantener la coherencia de JPA debemos añadir un Identificador a todas las clases, Registry lo tiene, pero a SchoolCertificates hay que añadírselo:

Add Identifier

Es muy interesante observar el fichero src/META-INF/persistence.xml, como se configura la conexión y se mapean las entidades.

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="school" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
 	<class>lebrijo.school.model.Registry</class>
 
 	<class>lebrijo.school.model.Schoolcertificate</class>
		<properties>
			<property name="eclipselink.target-server" value="WebLogic_10"/>
			<property name="eclipselink.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
			<property name="eclipselink.jdbc.url" value="jdbc:oracle:thin:@192.168.0.7:1521:xe"/>
			<property name="eclipselink.jdbc.user" value="school"/>
			<property name="eclipselink.jdbc.password" value="school"/>
			<property name="eclipselink.logging.level" value="FINEST"/>
		</properties>
 </persistence-unit>
</persistence>

Aquí os dejo el zip del proyecto eclipse tras estas modificaciones.

OEPE: Creando proyecto en Eclipse para WebLogic

En capitulos anteriores hemos definido la arquitectura Oracle EE, hemos instalado Oracle XE y la conectamos con nuestro Eclipse, y diseñamos el modelo de datos para nuestra aplicación de Ejemplo.

Ahora toca crear un proyecto básico en Eclipse para Weblogic.

Read the rest of this entry »

Diseñando el Modelo de Datos con JDeveloper

Considero JDeveloper como una buena herramienta para el diseño de bases de datos por algunas razones:

  • Es capaz de navegar muy bien las bases de datos Oracle.
  • Tiene un editor de esquema ER muy bueno.
  • Es capaz de modificar la base de datos cuando estás modificando el esquema.

De la misma web de Oracle podemos descargar la última versión de JDeveloper para nuestro sistema operativo. Instalarlo no implica mucha dificultad, basta con tener la JDK de Java.

Read the rest of this entry »

Oracle XE: Instalación y puesta a punto de la Base de Datos

Oracle XE es la implementación ligera de la Base de Datos versión 10g para desarrolladores y DBAs que quieran hacer pruebas en local.

Se instala descargando un ejecutable de la web de Oracle. Yo he instalado la versión Windows, virtualizando Windows XP sobre VirtualBox (>>) en mi Ubuntu.

Para administrar la Base de Datos tenemos una aplicación web en http://192.168.0.7:8080/apex/:

OracleXE administration web application

Para que os hagáis una idea de los requisitos de hardware, en la instalación básica en mi sistema, la base de datos ocupa 605 MB de RAM y 880 MB de disco duro. Se ve en la figura anterior.

Ahora crearemos la base de datos que va a alojar los datso de nuestra aplicación. Sobre la misma aplicación web vamos a Administration > Database Users > Create User, y creamos el usuario school con la misma passsword, seleccionando todos los privilegios del sistema:

Creating DB Schema

Con esto hemos creado el esquema school con un usuario que tiene todos los privilegios para desarrollar sobre la base de datos.

Antes de hacer una conexión remota debemos activar la opción Administration>Manage HTTP Access > Available from local server and remote clients, en la aplicación web de administración.

Una vez hecho esto podemos conectarnos desde cualquier aplicación: Eclipse, JDeveloper, PL/SQL Developer, SQLDeveloper,… En la siguiente figura muestro como conectarse desde eclipse ya que es nuestro IDE de cabecera, y además de un pantallazo muestra todos la configuración necesaria para la conexión:

Eclipse DB connection

Eclipse para Oracle

OEPE (Oracle Enterprise Pack for Eclipse), es una distribución de Eclipse afinada por Oracle para conectarse a sus bases de datos y desarrollar con sus tecnologías.

  • Trae ya configurado el plugin para que la perspectiva de Administración de la BBDD sea capaz de ver todos los tipos de objetos (paqetes, vistas, sinónimos,…).
  • Predescargado Weblogic, para instalarlo de un clic. Y con facilidades para desarrollar planes de despliegue sobre el.
  • Sus librerías de JSF, y los conectores SCA con Spring.

Si desarrollas Java sobre Eclipse, con los productos de Oracle detrás (SGBD y WebLogic), está bien por lo menos conocer que existe esta distro de Eclipse.

Conectar Netbeans a una BBDD

En esta entrada veremos como podemos conectar Netbeans a una Base de Datos, en mi caso trabajo con Oracle, por tanto la tomaremos de ejemplo.

Utilizaremos el estándar JDBC, basado en java para conexiones remotas de BBDD.

Read the rest of this entry »

Instalación de PHPMyAdmin

PHPMyAdmin es un administrador de la base de datos MySQL. Aplicación de administración desarrollada en PHP.

Podemos publicarla en un servidor web y administrar de forma segura nuestro SGBD MySQL de forma remota, con el único requisito de tener un navegador web.

Read the rest of this entry »

MySQL: Instalación de un servidor de Base de Datos

Instalaremos un servidor de base de datos en red MySQL sobre un Debian etch. Read the rest of this entry »