Contenido
Crear entitys de las tablas
Primero se debe verificar en la ventana Data Source Explorer que la conexión a las Base de Datos esta activa.
Clic derecho sobre el proyecto -> New -> Other… -> JPA -> JPA Entities from Tables.
Seleccionar la conexión, el esquema y las tablas. También debemos asegurarnos que la opción List generated classes in persistence.xml este habilitado. En nuestro caso seleccionamos las tablas Logins_users y Users y clic en Next >.
Muestra la relaciones entre las tablas. Clic en Next.
En el campo Package: de la sección Domain java class elegimos el paquete donde se generaran los entitys. en nuestro caso com.aor.test.entity. Clic en Next >.
Aquí podemos editar cualquier campo de la tabla de forma individual desplegando la tabla y seleccionando el campo.
Lo recomendable es dejar todo como esta y clic en Finish.
Nos vamos al paquete de com.aor.test.entity y podemos ver las clases entity que se generaron.
Descripción de entity
Los entity son JavaBean con anotaciones
- @Entity. Anotación que indica que es un entity
- @Table(name=»Users»). Anotación que indica que hace referencia a la tabla correspondiente.
- @NamedQuery(name=»User.findAll», query=»SELECT u FROM User u»). Anotación que muestra los querys que podemos utilizar en la aplicación.
- @OneToMany(mappedBy=»user»). Anotación que indica las relaciones con otras tablas.
- Cuenta con los métodos get y set como un JavaBean.
Crear interfaces
Clic derecho sobre el paquete com.aor.test.entityinterface -> New -> Interface. Escribir en el campo Name: IDaoLogins_user. Clic en Finish.
Abrimos la interfaz y escribimos todos los métodos que vamos a ocupar sobre la tabla. Los más comunes son: insert, update, delete. Para el caso de los select es más recomendable poner una descripción más precisa por ejemplo, logins_userFindAll, el cual indica que obtenemos todos los datos de la tabla logins_user. Siempre ponemos primero el nombre de la tabla en minúsculas y posteriormente la acción. Otro ejemplo, logins_userById significa que queremos obtener los registros de la tabla logins_user por el campo id.
Tecleamos los métodos de la interfaz.
1 2 3 4 |
public boolean insert(EntityManager em,Logins_user logins_user) throws Exception; public boolean update(EntityManager em,Logins_user logins_user) throws Exception; public boolean delete(EntityManager em,Logins_user logins_user) throws Exception; public List<Logins_user> logins_userFindAll(EntityManager em) throws Exception; |
- EntityManager em, es parte de la API de JPA para gestionar los entitys.
- Logins_user logins_user, entity correspondiente.
- logins_userFindAll. Regresa un lista de Logins_user.
El resultado será.
Creamos la interfaz para users.
- Nombre de la interfaz: IDaoUser
- Métodos:
1234public boolean insert(EntityManager em,User user) throws Exception;public boolean update(EntityManager em,User user) throws Exception;public boolean delete(EntityManager em,User user) throws Exception;public List<User> userfindAll(EntityManager em) throws Exception;
El resultado será:
Crear DAO
Son la implementación de la interfaz.
Clic derecho sobre el paquete com.aor.test.dao -> New -> Class. Escribir en el campo Name: DaoLogins_user. Clic en Add…, seleccionar la interfaz IDaoLogins_user y Clic en Finish.
Tecleamos los métodos de la clase.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
@Override public boolean insert(EntityManager em, Logins_user logins_user) throws Exception { em.persist(logins_user); return true; } @Override public boolean update(EntityManager em, Logins_user logins_user) throws Exception { em.merge(logins_user); return true; } @Override public boolean delete(EntityManager em, Logins_user logins_user) throws Exception { em.remove(logins_user); return true; } @Override public List<Logins_user> logins_userFindAll(EntityManager em) throws Exception { TypedQuery<Logins_user> query = em.createNamedQuery("Logins_user.findAll", Logins_user.class); List<Logins_user> logins_user = query.getResultList(); return logins_user; } |
- persist, merge, remove y createNamedQuery son métodos que proporciona la API de JPA.
- El método createNamedQuery toma como parámetro el nombre de la anotación @NamedQuery del entity User.
El resultado será.
Creamos la clase para users.
- Nombre de la clase: DaoUser
- Métodos:
123456789101112131415161718192021@Overridepublic boolean insert(EntityManager em, User user) throws Exception {em.persist(user);return true;}@Overridepublic boolean update(EntityManager em, User user) throws Exception {em.merge(user);return true;}@Overridepublic boolean delete(EntityManager em, User user) throws Exception {em.remove(user);return true;}@Overridepublic List<User> userfindAll(EntityManager em) throws Exception {TypedQuery<User> query = em.createNamedQuery("User.findAll", User.class);List<User> user = query.getResultList();return user;}
El resultado será:
Resultado final
Finalmente tenemos para user y logins_user los entity, interfaz de entity, dao e interfaz de dao.