Está en la página 1de 34

Creacion de Proyecto hasta la Semana 4

Creamos proyecto Dynamic Web Proyect

En la opción Configuracion damos clic en Modificar y seleccionamos las siguientes opciones

Next
Crear arquitectura MAVEN

Next

Dejamos tal cual las opciones como están en las imagenes


Genera archivo WebXML del proyecto

Next

Finish
Pasamos las carpetas de WebContent a la Carpeta src/main/webapp y eliminamos la carpeta
WebContent

Configurar inicio de proyecto a la carpeta webapp

Clic derecho al proyecto, Propiedades.

Ingresamos a la opción Deployment Assembly y configuramos de la siguiente manera

Apply and Close

Configurar archivo POM

Clic derecho al proyecto, opción configurar, configurar MAVEN proyect


Dejamos tal cual esta

Finish

Validar que el proyecto este correcto

Clic derecho al proyecto, Maven, UpdateProyect dejar de la siguiente manera.


OK

Creacion de Paquetes

Clic derecho src/main/java, new, package

Colocar el siguiente formato

Finish

Crear de la misma manera el paquete Controlador (com.uisrael.inmobiliarioWebA.controlador)

Crear de la misma manera el paquete Vista (com.uisrael.inmobiliarioWebA.vista)


Crear entidades de base

Dentro del paquete modelo creamos un paquete entidades

com.uisrael.inmobiliarioWebAmodelo.entidades

dentro del paquete modelo.entidades clic derecho, New, Class (tablas del modelo)

Finish

Creamos todas las tablas y atributos de la base

Después de crear todas las tablas y atributos de las tablas


Generamos Contructor clic derecho después de las declaraciones de variables, source,
Genarte Constructor from Superclass

Generate

Realizar este paso con todas las clases creadas

Despues generar Get y Set en todas las clases

Clic derecho después del constructor, Source, Generate Getters and Setters seleccionamos
todas las opciones

Generate
Transformar clases en entidades JPA

Modificar las clases agregando el siguiente texto (implements Serializable) importamos la


librería import java.io.serializable;

esto garantiza que la información sea la misma de salida a la que llega, nos colocamos en el
nombre de la clase aparece un mensaje y seleccionamos la primera opción

Agregar un toString al final de toda la clase

Clic derecho, source, generate tostring (permite leer el contenido del objeto)

No se topa nada de la otra pantalla

Generate
Realizar una clase entity jpa mediante anotaciones “@” colocamos @Entity arriba de la
declaración de la clase

Activar librerías mediante internet

Buscamos jpa Maven dependency, seleccionamos la primera opción ingresamos al repositorio


JPA 2.0 API Esto solo se hace una vez

Selecciónamos la ultima version versión.


Copiamos todo el texto

Pegamos en el archivo POM, debe quedar como lo que esta subrayado primero agregar
<dependencies>

Grabar proyecto

Hasta aquí se hace el proceso en el archivo pom solo una vez


En la tabla, seleccionar entity y seleccionar la primera opción

Definir una PK con el símbolo”@” arriba del atributo PK de la tabla

Nos posicionamos en la opción @Id y seleccionamos la primera opción

Guardar proyecto
UTILIZAR JPA EN EL PROYECTO

En caso de no tener la carpeta de JPA

Debemos realizar clic derecho en el proyecto, propiedades, Project Facets añadimos librería
JPA

Ingresamos a persistence.xml en la carpeta META-INF

Seleccionamos la pestaña source

Despues del nombre del proyecto damos un espacio y “presionamos ctrl+espacio” y


seleccionamos la primera opción. “transaction.type=”JTA”
Despues seleccionamos JTA, borramos y “presionamos ctrl+espacio”, seleccionamos
“RESOURCE_LOCAL”

Seleccionamos la pestaña General y vamos añadir las clases creadas.

Nos vamos a la opción “Add”

Y buscamos todas las clases creadas y añadimos.


Ok

Agregar anotación “@Table(XX)”, identifica cual es la tabla que se va a mapear con la clase
(XX=nombre de la tabla)

Creamos la tabla para la base, nos posicionamos en la palabra Table y seleccionamos la


primera opción, eso en todas las clases.

Con esto cualquier consulta se tiene que apuntar a la Clase de JAVA

Generar ID automatico

@GeneratedValue(strategy = GenerationType.XXX) XXX=seleccionamos el tipo de


incremental (AUTO=automatico, SEQUENCE=secuencial, TABLE=tabla de secuenciales,
IDENTITY=crea un secuencial de uno en uno) utilizamos IDENTITY.
Esto realizamos en todas las clases

Anotacion “@Column”, especifica el nombre de la columna que este en la base de datos.

Esta anotación se la deber realizar en todos los atributos de las clases.

Debería quedar asi todas las clases según los atributos.


Tener en cuenta el modelo

Creación de paquete dao (capa de accesos a datos, estaran alojados los querys)

Clic derecho en MODELO.ENTIDADES, new paquete terminaría en modelo.dao


Dentro del paquete dao creamos un nuevo paquete llamado impl (guardamos
implementaciones) quedaría dao.impl

CREACION DE INTERFACE EN DAO

Clic derecho en modelo.dao, new, interface creamos como nombre UsuarioDao (y todas las
tablas que se tenga)
Finish

Declarar métodos insertar, eliminar, modificar

Nos colocamos en la primera opción y la seleccionamos.

Agregamos una lista de usuarios


Nos colocamos en el error list y seleccionamos la opción que termina en java.util

Crear una clase que implemente la interfaz del dao

Clic derecho en modelo.dao.impl, new class (nombre de la clase UsuarioDaoImpl)

Implementamos la interface UsuarioDao


Nos colocamos en el error y seleccionamos la primera opción

Queda de esta manera

Creamos en el paquete controlador un nuevo paquete impl quedaria controlador.impl


Crear una nueva interfaz en el controlador

Se una clase en el controlador.impl quedando UsuarioControladorImpl


SI YO QUIERO UTILIZAR LOS METODOS DESDE LA WEB DEBE ESTAR EN LA INTERFAZ DEL
CONTROLADOR Y SI QUIERO QUE EL CONTROLADOR TENGA ACCESO A LOS METODOS DEL
MODELO DEBE ESTAR EN LA INTERFAZ DEL DAO

Ir al modelo.dao y se copia los métodos ya creados para no confundir los nombres

Se debe de pegar en el usuario.controlador

Implementamos de usuario controlador los métodos

Nos colocamos en el error y selecionamos la primera opcion

Quedaría asi
Crear todas las tablas que se tienen del modelo

Este método va en clientes para buscar por usuario

MODIFICAR EL ARCHIVO PERSISTENCE

En el archivo pom se modifica, eliminar lo seleccionado

Descargar eclipse link desde Maven buscar maveneclipselink

Descargar la versión 2.6.8 y pegar en la sección que se elimino en el paso anterior solo se
realiza una vez
En el archivo de persistencia se crea al proveedor y la conexión a la base de datos

<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://l
ocalhost:5432/tallerA"/>
<property name="javax.persistence.jdbc.user" value="postgres"/>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.D
river"/>
<property name="javax.persistence.jdbc.password" value="manager123"/>
<property name="javax.persistence.schema-generation.database.action" v
alue="create"/>

PROGRAMAR METODO INSERTAR

En el modelo.dao.impl insertar lo mas importante de la programación EMF

Debe quedar asi

//1.- Crear EMF


EntityManagerFactory
emf=Persistence.createEntityManagerFactory("inmobiliarioWebAPU");
//2.- Crear EM
EntityManager em=emf.createEntityManager();
//3.- Transacciones
em.getTransaction().begin();
//4.- Generar Query
em.persist(nuevoUsuario);
//5.- Guardar a la base
em.getTransaction().commit();

ACCEDER AL MODELO DE INTERFAZ

En el error seleccionamos y presionamos la primera opción

CREAR UN TEST DE LA APLICACIÓN

Clic derecho en test/java, new, jUnit (si no se encuentra y a other y buscar se debe seleccionar
Junit test Case), next,

en esta pantalla solo se modifica el Name, se coloc lgo referente a Test.

Insertar la librería Junit


No se topa nada y OK

Se simula las acciones del teclado digitadas por el usuario.

No olvidar que todo error que salga se debe importar las librerías
CONFIGRACION EN PGADMIN

Crear base de datos con el nombre especificado en el archivo de persistence

Para verificar el funcionamiento se debe dar un clic derecho en el java test, run, JUnitTest
Va asalir un error y es por falta del driver, se debe colocar en el archivo pom lo que esta
subrayado

<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->


<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1206-jdbc41</version>
</dependency
DEFINICION DE RELACIONES ENTRE TABLAS.

Para este ejemplo vamos a realizar una relación de uno a uno (cliente -
usuario) definimiso como tabla origen Cliente y tabala destino Usuario

Defino variable objeto (private Usuario fkUsuario;)

Después debemos generar Get y Set.- Click derecho,Source, Get y Set al


element creado
Generate

Mediante anotaciones definimos el tipo de relación “@OneToOne” además se


coloca “@JoinColumn” para especificar la columna que se va a crear en la base
de datos referente a la relación.
Despues de este proceso se realiza la relación de regreso, en este caso de
(Usuario a Cliente)

Generamos un objeto en este caso Cliente (private Cliente fkCliente)

Definimos el tipo de relación, en este caso “OneToOne”, colocamoes elemento


mappedBy para indicar la FK a utilizar. Se utilizará fetch para optimizar
recursos al realizar las consultas con él con complemento LAZY.

JOIN COLUMN PUEDE SER CUALQUIER COSA YA QUE ES EL NOMBRE DE LA COLUMNA QUE VA
A LA BASE.

Y EL QUE NO PUEDE CAMBIAR ES EL NOMBRE DEL OBJETO EN LA RELACION.

RELACION DE UNO A VARIOS

Para almacenar los datos vamos a trabajar con listas.

Creamos una lista (public List<Inmuebles>) listInmuebles, se da un error y se


debe siempre de importar el java.util Separamos espacio para la lista con
ArrayList<Inmuebles> quedaría public List<Inmuebles> listInmuebles = new
ArrayList<Inmuebles>;
Generamos Get y Set del objeto creado, clic derecho source Get y set,
seleccionamos el objeto creado, generate.

Generamos la relacion con anotación “@OneToMany”

No importa que marque error (el error esporque no es el mismo nombre) en caso que de
error OJO

Definicion de la relacion de regreso

Definimos objeto de la tabla de relación en este caso de la tabla Usuarios, con la anotación
@ManyToOne y los complementos fetch, Lazy, cascadetype.ALL.

Ademas creamos el nombre de la tabla con @JoinColumn.


CREAR TODAS LAS RELACIONES DEL MODELO DE LA BASE DE DATOS.
OJO SIEMPRE QUE SE MODIFIQUE LAS RELACIONES SE DEBE DE ELIMINAR EL ESQUEMA DE
LA BASE CON LOS COMANDOS drop schema public cascade; create schema public;

En el archivo test

También podría gustarte