المشاركات

عرض الرسائل ذات التصنيف jpa

JPA + REST en Payara Micro - Formato de fechas e insertando registros

صورة
Continuamos con nuestra serie de vídeos de Microprofile con Payara Micro. En este nuevo vídeo veremos cómo formatear las fechas en JSON desde la entidad JPA. Además, veremos cómo insertar registros en la tabla usando unas peticiones POST desde RESTful. El código fuente se encuentra disponible en este repositorio. https://bitbucket.org/apuntesdejava/microprofile-service-example/src/master/?at=post

JPA + REST en Payara Micro

صورة
En este vídeo veremos cómo acceder a una base de datos desde un endpoint REST, utilizando JPA, en Payara Micro.  La base de datos para el ejemplo se puede descargar desde aquí: https://github.com/datacharmer/test_db    El código fuente se este proyecto se puede descargar desde aquí: https://bitbucket.org/apuntesdejava/microprofile-service-example/src/jpa/

Pruebas Unitarias a JPA y servicios REST con Arquillian + Payara. (2/4)

صورة
Continuaremos con nuestro proyecto de prueba. Ahora lo configuraremos para que permita probar EJB que tendrán la lógica de negocio, y utilizando JPA como motor de persistencia.

Pruebas Unitarias a JPA y servicios REST con Arquillian + Payara. (1/4)

صورة
Las pruebas unitarias son buenas y necesarias. Nos permiten evaluar ciertas porciones del proyecto antes de integrar y ejecutarlo todo. No vamos a esperar construir todo un auto para probar si funciona. Por tanto, solo probamos cada parte y nos aseguramos que cada prueba cumpla con ciertas características. Estas características son las que se definen en las Pruebas Unitarias. Si pasan estas características - o condiciones - recién se puede construir el proyecto. Aprovechando las fases de construir de Maven, podemos implementar pruebas unitarias para que - si aprueban las restricciones - pueda construir el proyecto sin problema. Pero ¿si necesitamos probar accesos a JPA o lógicas establecidas en RESTful? o más aún: ¿cómo podemos probar en un ambiente Java EE sin necesidad de desplegar un servidor Java EE? Aquí es donde entra   Arquillian . En esta serie de publicaciones  veremos desde preparar un ambiente Java EE para Arquillian, hasta hacer pruebas con JPA y RESTful. Al final l

Spring con JDBC y JPA

صورة
En este post veremos una aplicación Java Web donde la conexión a la base de datos se hará usando Spring, y también veremos cómo manipular la data con JDBC y con JPA. Todo esto lo ejecutaremos desde Tomcat.

JPA: Maestro / detalle con clave primaria compartida

صورة
Hace casi 10 años (wow!) había publicado un artículo sobre las claves compuestas en entidades de tipo Maestro / Detalle . Bueno, aquí está una super actualización. Esa vez fue hecha con JPA 1.0, ahora lo mostraré más actualizado y mejorado con con el JPA 2.0 .

Convertidor de tipo de atributo con JavaPersistence API

صورة
Java nos permite crear muchos tipos de datos. Pero cuando queremos guardarlo en la base de datos, necesitamos hacer una conversión. Y de manera inversa, cuando queremos obtener un valor de la base de datos, necesitamos convertirlo a nuestro tipo de valor especial. Menudo trabajo. Optamos o por hacer un convertidor de datos a nivel de DAO, o no usamos nuestra estructura de datos especial. ¿Y si usamos JPA? Calma, calma. La versión JPA 2.1 (que viene incluido en Java EE 7 - JSR 338 ) tiene un convertir de tipos para ayudarnos con este problema.

JPA con Stored Procedures

صورة
JPA es el API que nos permite manejar la persistencia en Java de una manera transparente. No debemos preocuparnos cuál es el DBMS que está guardando los registros, simplemente lo invocamos como si fueran objetos en Java. En la versión 2.1 de JPA, dentro el JavaEE 7, se puso una nueva característica que es la de invocar Stored Procedures. Hice un pequeño tutorial, y aquí lo muestro el código fuente, y la ejecución en un vídeo.

NetBeans 6.8 / JSF 2.0 / EJB 3.1 / JavaEE 6 / GlassFish 3

En NB 6.8 existe un mejorado asistente para crear un CRUD usando JSF 2.0/EJB 3.1/JPA 2.0. Aquí está un vídeo demostrativo. Las tablas se crean automáticamente a partir de las clases entidad que se crearon.

Dao y Spring

En la siguiente página, se explica cómo usar Spring usando el Patrón DAO. http://sites.google.com/site/apuntesdejava/Home/dao-y-spring Se explica también cómo usarlo con JDBC, iBatis y JPA. Se analizan los tres enfoques sobre un mismo proyecto, ya que solo así se ve la importancia de usar el patrón DAO y el patrón Factory. El ejemplo es el desarrollo de una aplicación JSF que accede a la base de datos "sample" que viene en el Java DB. También se encuentran los proyectos usados en el tutorial

Guardar imágenes en base de datos usando JPA

Hay infinidad de ejemplos de cómo guardar una imagen a base de datos con JDBC, y cómo recuperarla. Pues esta vez mostraré un ejemplo usando JPA. Supongamos que nuestra clase entidad tiene una propiedad llamada imagen que es donde se guardará la imagen. Esta propiedad debe declararse así: @Lob @Column(name = "imagen") private byte[] imagen; Para guardar una imagen (supongamos una que esté en el disco), debemos realizar lo siguiente: Entidad i = new Entidad(); // nuestra entidad File f = new File("D:/Imagen006.jpg"); //asociamos el archivo fisico InputStream is = new FileInputStream(f); //lo abrimos. Lo importante es que sea un InputStream byte[] buffer = new byte[(int) f.length()]; //creamos el buffer int readers = is.read(buffer); //leemos el archivo al buffer i.setImagen(buffer); //lo guardamos en la entidad em.persist(i); //y lo colocamos en el EntityManager Ahora, para recuperar el contenido haremos que se muestre el contenido en un JFrame: Enti

¿Para que los EJB?

صورة
Si hacemos una aplicación Web ¿para qué necesitamos los EJB, si todo lo podemos programar en los Servlets y los JSP?... y si programos una aplicación Desktop ¿para qué los EJB si todo lo podemos programar en las clases Swing? Pero si queremos una aplicación que sea funcional tanto en Web como en Desktop, donde la lógica de negocio debe ser la misma, y si se cambia la forma de realizar alguna rutina debe ser reflejada en en las dos aplicaciones. ¿qué hacemos? ¿Aún no está claro lo que hablo? Bueno, vayamos directo a la aplicación. Haciendo una aplicación Web que calcula áreas Supongamos que queremos una aplicación web llamada AreasWeb que haga cálculos de área geométricas: el área del círculo, del pentágono regular, del triángulo y del trapecio. Los parámetros que necesitamos son los siguientes: Para calcular el círculo necesitamos el radio . Para el pentágono, la altura Para el triángulo, la base y la altura Y para el trapecio, la base menor , la base mayor y la altura

AJAX con DWR en NetBeans 6.1

صورة
Una de las bibliotecas más fáciles que he visto para programar en AJAX es el Direct Web Remoting - DWR. En este post veremos algunas de sus características que nos ayudará a tener aplicaciones enriquecidas con ajax . Para ello usaremos: NetBeans 6.1 DWR Si deseas saber lo que es AJAX, puedes revisar mi anterior post llamado (justamente) AJAX . Instalando DWR en NetBeans La biblioteca DWR consta únicamente de un archivo .jar. Este lo podemos descargar de aquí: http://getahead.org/dwr/download. A la fecha de este post la versión del DWR es la 2.0.4. Guardaremos el archivo en una carpeta que será destinada para las bibliotecas de los proyectos. Yo, en Windows, lo guardo en d:\proys\lib\DWR, y en Linux lo guardo en ~/proys/lib Adicionalmente DWR necesita de la biblioteca commons-logging. Esta la puedes descargar de aquí: http://commons.apache.org/downloads/download_logging.cgi Descomprimamos el archivo descargado de commons-logging en la misma carpeta lib. Entramos a la opción Tools

Tutorial: EJB 3.0 Enterprise Beans con NetBeans 5.5

صورة
Uno de los puntos fuertes e importantes de programar con Java Enteprise es la centralización del código de negocio usando EJBs. De esta manera, cualquier aplicación (ya sea web o desde una aplicación cliente desktop) siempre tendrán la misma lógica. El problema era que hasta antes de la versión 3.0 de EJB la programación era realmente pesada. Aprender lo que eran los beans de sesión (con estado y sin estado), crear interfaces y usar clases como javax.ejb.SessionBean , codificando los archivos de despliegue (y que eran diferentes entre los diferentes contenedores como JBoss, Jonas, etc) y no sé que tanto más... era un lío. Personalmente no me apetecía aprenderlo... ni usando los IDE más sofisticados como NetBeans, JBuilder, JDevelopment... nada.. me quedaría programando en web y listo. Pero no pude huir fácilmente... aún la necesidad de utilizar un solo código de negocio para varias aplicaciones me rondaba. Hasta que salió el Java EE 5. Tuve mis dudas, pensé que sería lo mismo que ant