desarrollo de software con java enterprise edition...desarrollo de aplicaciones con java enterprise...

30
UNIVERSIDAD DEL VALLE – SEDE PALMIRA Programa de Tecnología en Sistemas Desarrollo de Aplicaciones con Java Enterprise Edition Desarrollo de Software con Java Enterprise Edition Antonio J. Vélez Q. Universidad del Valle – Sede Palmira

Upload: others

Post on 08-Feb-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Desarrollo de Software conJava Enterprise Edition

Antonio J. Vélez Q.Universidad del Valle – Sede Palmira

Page 2: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Requerimientos de Software

● Java 2 SE Development Kit ● Java EE 5 SDK● Netbeans (IDE)● Netbeans Enterprise Pack● Motor de bases de datos● Driver JDBC

● java.sun.com/javase● java.sun.com/javaee● www.netbeans.org● www.netbeans.org● www.postgresql.org● www.postgresql.org

Page 3: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Conceptos Básicos

● Funcionamiento de los servidores web

– Páginas estáticas (dhtml : html + javascript)

– Páginas dinámicas

● Diseño de Aplicaciones

– Layers vs Tiers

– Patrones de Diseño

● Conexión a Bases de Datos

– JDBC

– Patrón DAO

Page 4: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Funcionamiento de los Servidores Web(páginas estáticas)

Solicitudhttp://java.sun.com:8080/javase/index.html

ServidorHardware

Servidor Web(Apache / SJWS)

java.sun.com 8080

Archivo .../javase/index.html

index.html(html + javascript)

Page 5: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Funcionamiento de los Servidores Web(páginas dinámicas)

Solicitudhttp://java.sun.com:8080/javase/index.jsp

ServidorHardware

Servidor Web(Apache / SJWS)

java.sun.com8080

Archivo .../javase/index.jsp

HTML(html + javascript)

Página Dinámica

Page 6: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Layers vs Tiers

● Tiers esta relacionado con ubicación física en donde de ejecutan los procesos. Layers se relaciona con la organización lógica del código (paquetes). http://codebetter.com/blogs/david.hayden/archive/2005/07/23/129745.aspx

● Layers es la forma de organizar el código lógicamente, no físicamente. Tiers significa la separación del código en redes o procesos. http://geekswithblogs.net/mahesh/archive/2006/10/28/95322.aspx

Page 7: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Tiers vs Layers

EIS Tier(database / filesystem)

Web Tier

Business Tier(logic business)

Business Tier

personal entity

payroll util

Client Tier

Page 8: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrones de Diseño

● General

– El patrón es una forma, plantilla, modelo o conjunto de reglas, que son usadas para tomar decisiones o crear cosas (o parte de éstas). http://en.wikipedia.org/wiki/Pattern

● Computación

– Describe una solución verificada/probado a problema recurrente de diseño, haciendo énfasis particular sobre el contexto y la problemática que lo rodea; así como en las consecuencias e impacto de la solución. http://java.sun.com/blueprints/patterns/

Page 9: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrones de Diseño

● Computación (Ingeniería de Software) http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

– Un patrón de diseño es una solución general repetible para un problema común que se repite cuando se hace el diseño del software. Un patrón de diseño no es un diseño definitivo que se pueda convertir en código; es una descripción o plantilla que puede ser usada de diversas formas.

– En diseño orientado a objetos, el patrón muestra las relaciones e interacción entre clases y/o objetos, sin llegar a especificar el conjunto final de clases y/o objetos involucrados.

Page 10: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrones de Diseño

Relaciones entre objetosDiagrama de Clases (UML)

Interacción entre objetosDiagrama de Secuencia (UML)

Page 11: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Bases de Datos

● General

– Conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso. Una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.

– Colección de información organizada de forma tal que pueda ser procesada rápidamente por una aplicación de software. http://www.webopedia.com/TERM/d/database.html

Page 12: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Bases de Datos

● Computación - http://en.wikipedia.org/wiki/Database

– Colección estructurada de registros o datos que se almacenan en un computador, de forma tal que una aplicación los pueda consultar a través de consultas (queries)

– El programa usado para administrar los datos y las consultas en la base de datos es conocido como Sistema Administrador de Bases de Datos (DBMS – Database Management System)

Page 13: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC - Java Database Connectivity

● API Java para acceder a cualquier tipo de base de datos tabular, especialmente a datos almacenados en bases de datos relacionales.

● JDBC permite implementar aplicaciones que realizan las siguientes actividades :

– Conectarse a una fuente de datos (base de datos)

– Envío de consultas y sentencias de actualización a una base de datos

– Recuperar y procesar los resultados recibidos de la base de datos como resultado de las consultas.

Page 14: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Clases Principales

● java.sql.DriverManager

– Permite cargar un controlador JDBC para un DBMS● java.sql.Connection

– Representa conexión con la fuente de datos● java.sql.Statement / java.sql.PreparedStatement

– Representa consulta o sentencia de actualización que se envia al DBMS

● java.sql.ResultSet

– Conjunto de datos resultado de una consulta

Page 15: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Ejemplo JDBC – Esquema Básico

Class.forName ( "org.postgresql.Driver" ) ;

String strConn = "jdbc:postgresql://192.168.2.51/personal";

Connection connection = DriverManager.getConnection ( strConn, login, passwd ) ;

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery ("select identification, name from person");

while ( rs.next() )

{

int ident = rs.getInt ( "identification" ) ;

String name = rs.getString ( "name" ) ;

}

Page 16: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Establecer Conexión

● Cargar el controlador (driver) JDBC

– Se requiere del nombre de la clase que representa el driver (incluido el paquete). Es distinto para cada proveedor del DBMS.● ODBC jdbc.odbc.JdbcOdbcDriver● PostgreSQL org.postgresql.Driver ● Derby org.apache.derby.jdbc.EmbeddedDriver

– Se usa la clase Class y el método de instancia forName.● Class.forName ( "org.postgresql.Driver" ) ;

Page 17: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Establecer Conexión

● Crear la conexión con la base de datos

– Se requiere del URL de conexión (strConnection), el cual varia dependiendo del proveedor del DBMS.● ODBC jdbc:odbc:<DB>● PostgreSQL jdbc:postgresql://<HOST>:<PORT>/<DB>● Derby jdbc:derby:<DB>

– Se usa la clase DriverManager y el método de instancia getConnection● Connection conn = DriverManager.getConnection

( strConnection, login, passwd ) ;

Page 18: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Consultas y Sentencias SQL

● SQL : Standart Query Language

– Lenguaje para manipulación de datos sobre bases de datos

● Para transferir consultas al DBMS de usuan las clases java.sql.Statement y java.sql.PreparedStatement

● Se requiere crear la consulta

– Statement stmt = conn.createStatement ( ) ;

– PreparedStatement pstmt = conn.prepareStatement ( sql ) ;

Page 19: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Consultas y Sentencias SQL

● Statement

– Se recomienda cuando la sentencia no requiere parámetros o parámetros que no requieren formato especial● “select identification, name from person”● “select * from person where id = “ + identification

● PreparedStatement

– Se recomienda cuando la sentencia requiere parámetros● “insert into person (identification, name, birthDate) values ( ? , ?

, ? )”

Page 20: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Consultas y Sentencias SQL

● Utilización de PreparedStatement

– PreparedStatement pstmt = conn.prepareStatement ( “insert into person (identification, name, birthDate) values ( ? , ? , ? )” ) ;

● Asignación de valores

– Se usan métodos como setInt, setString, setDate, etc.● pstmt.setInt ( 1 , identification ) ;● pstmt.setString ( 2 , name ) ;● pstmt.setDate ( birthDate ) ;

Page 21: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Ejecución de Consultas y Sentencias

● Existen varios métodos dependiendo de la clase. Su uso depende de la necesidad del programador.

● Statement : Reciben un parámetro que es la instrucción Sql a ejecutar

– execute : ejecuta una sentencia, devuelve un valor de verdad

– executeQuery : ejecuta una consulta y devueve un ResultSet

– executeUpdate

● PreparedStatement

– Los mismos de Statement, pero no reciben parámetros

Page 22: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Ejecución de Consultas y Sentencias

● Statement

– stmt.execute ( “insert into product (code, name, cost, tax) values (105, 'Arroz', 700, 0.08)” ) ;

– stmt.executeQuery ( “select * from product” ) ;

– stmt.executeUpdate ( “update product set cost = 800 where code = 105” ) ;

● PreparedStatement

– Se usan los métodos execute, executeQuery y executeUpdate, pero se diferencias de los métodos de la clase Statement, porque NO reciben parámetros.

Page 23: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Recuperando Resultados (ResultSet)

● El resultado generado por los métodos executeQuery son objetos de tipo ResultSet

● Un ResultSet se puede comparar con una hoja de calculo.● Los métodos más usados son :

– next : devuelve verdadero si hay más registros en el ResultSet

– getInt , getString , getDate, etc : para obtener uno de los campos del registro.

Page 24: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

JDBC – Recuperando Resultados (ResultSet)

while ( rs.next() )

{

int ident = rs.getInt ( "identification" ) ;

String name = rs.getString ( "name" ) ;

.......

}

Page 25: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Conexión a BD – Patrón DAO

● DAO : Data Access Object● Contexto

– Patrón de diseño para acceso a bases de datos

– Independizar el acceso a los datos de la lógica de la aplicación.

– Centraliza el acceso a los datos en clases responsables de ellos

– Permite la modificación del mecanismo de acceso a los datos, sin necesidad de modificar la lógica de la aplicación

Page 26: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrón DAO – Clases básicas

● BusinessObject

– Objetos que implementan la lógica de la organización

● DataAccessObject

– Objetos que accesan los datos

● TransferObject

– Encapsula los datos como objetos

Page 27: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrón DAO – Interacción entre objetos

● El BusinessObject

– Crea o contiene la referencia a un objeto DAO

– Solicita datos al DAO (getData)

● El DAO

– establece conexión con la BD y realiza la consulta

Page 28: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrón DAO – Interacción entre objetos

● El BusinessObject

– Crea o contiene la referencia a un objeto DAO

– Solicita datos al DAO (getData)

● El DAO

– establece conexión con la BD y realiza la consulta

Page 29: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrón DAO – Interacción entre objetos

● El BusinessObject

– Modifica la información del objeto TransferObject

– Solicita actualización al DAO (modificar la BD)

● El DAO

– Actualiza la BD

Page 30: Desarrollo de Software con Java Enterprise Edition...Desarrollo de Aplicaciones con Java Enterprise Edition Layers vs Tiers Tiers esta relacionado con ubicación física en donde de

UNIVERSIDAD DEL VALLE – SEDE PALMIRAPrograma de Tecnología en Sistemas

Desarrollo de Aplicaciones conJava Enterprise Edition

Patrón DAO – Interacción entre objetos

● El BusinessObject

– Modifica la información del objeto TransferObject

– Solicita actualización al DAO (modificar la BD)

● El DAO

– Actualiza la BD