Crear Aplicación Cliente para Conectarse a una Base de Datos.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Advertisements

2010Ing. de Sistemas II Persistencia en EJB3 Pasos para crear entity beans.
Acceso a Bases de Datos con Java
Red Social: “Un millón de Amigos”.
Red Social: “Un millón de Amigos”.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
BASE DE DATOS OBJETO RELACIONAL
Cetis No. 119 Profa. Graciela Prado Becerra
Lenguaje de programación Java
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Yuri Bernal Desarrollo de Aplicaciones Comerciales en JAVA.
PATRON DAO Data Access Object (OBJETO DE ACCESO A DATOS)
Conexión a Base de Datos con NetBeans
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Lenguaje de consulta de Hibernate
UNIVERSIDAD LATINA (UNILA) VI.- ARCHIVOS Y BASES DE DATOS
Características Objeto Relacionales en Oracle
Francisco Moreno Bases de Datos II Universidad Nacional
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
JAVA Persistence API (JPA)
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
Archivos Contenido: Archivos de Texto Archivos de Acceso Aleatorio
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Enterprise Java Beans Rubén Trujillo Sept-Dic 2008.
Lenguaje de Programación Java Profesor: Mauricio Martínez P. Análisis y Diseño Orientado a Objetos UML: Lenguaje de Modelamiento Unificado Toma de Requerimientos.
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
1 Ingeniería del Software Ejercicios de Implementación  Caso de Uso Total Gasto (Junio 2003)  Caso de Uso Mejor Usuario (Septiembre 2003)  Caso de Uso.
Colecciones.
ARCHIVOS Y CONEXIÓN A BASE DE DATOS. FileInputStream: Clase que representa ficheros de texto accedidos en orden secuencial, byte a byte. FileWriter: Clase.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Patrones Creacionales
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Manejo de Base de Datos en Java Ing. Esp. Ricardo Cujar.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
 Patrón de diseño de software.  Representar de forma Orientada a Objetos los datos de una Base de Datos Relacional.  Consiste en instancias de clase.
Fernando Alonso Nicolás Serrano Acceso a Bases de Datos con Java JDBC 01 de Abril de 2008.
1 TEMA 8. Acceso a bases de datos Arquitectura de una aplicación que accede a una BD Arquitectura de una aplicación que accede a una BD Establecer la conexión.
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
JDBC Java Database Connectivity CC52N - Computación para el trabajo grupal Profesor: Nélson Baloian Por: Edgard Pineda.
PATRON PROTOTYPE Cristina Merino Héctor Carbajo Alicia Arroyo.
1 Programación Interactiva JDBC Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle.
Programanción I Ing. Cristhian Garita Fonseca
Java.
Java Data Base Connectivity
Structured Query Language (Lenguaje Estructurado de Consultas)
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
Presentado por: PABLO ANDRES DIAZ SAIN HASSAM CAICEDO
Detalles Generales sobre Java
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Acceso a Datos Erick López Ovando Licenciado en Informática.
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Archivos de Propiedades
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Concepto de Tipo y Subtipo Diseño e Implementación Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 10 Versión.
UNIVERSIDAD DIEGO PORTALES Facultad de Ingeniería Programación Avanzada HERENCIA Tema: HERENCIA Ing. Javier Chamorro Cerón.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Softlogia S.R.L. Formación de Recursos Humanos Hibernate Core Instructor: Martin R. Baspineiro.
ESTRUCTURA DE UN PROGRAMA EN
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Francisco Moreno Bases de Datos II Universidad Nacional
Conexiones a Bases de Datos Utilizando la clase Conexión
Transcripción de la presentación:

Crear Aplicación Cliente para Conectarse a una Base de Datos

PATRON DAO - (OBJETO DE ACCESO A DATOS) Es un componente de software que suministra una interfaz común entre la aplicación y uno o mas dispositivos de almacenamiento de datos, tales como una base de datos o un archivo. Corresponde a una solución al problema de diferencial de impedancia entre un programa orientado a objetos y una base de datos relacional, empleando únicamente la interfaz de programación (API) nativa del manejador de bases de datos, o algún otro sustituto como el ODBC,

Se utiliza el DAO para: a.Abstraer y encapsular accesos b.Gestionar las conexiones a la fuente de datos c.Obtener los datos almacenados a.Bussiness Object: objeto que quiere acceder a la fuente de datos para poder almacenar o consultar datos. b.DataAccessObject: Abstrae al BussinessObject de los detalles de acceso a la fuente de datos. c.DataSource: representa la implementación de la fuente de datos d.Transfer Object: es un objeto intermedio entre el Bussiness Object y el DataAccessObjet

Ejemplo Si se tiene una tabla CIUDADES Create table CIUDADES( nombre varchar (80), departamento varchar(80) ); Se deben crear dos clases por cada relación con la que la aplicación tendrá acceso a los datos

Clase Transporte de Datos public class CIUDAD{ String nombre; String departamento; public String getNombre(){} public String getDepartamento(){} ……….. } En algunas instancias, a esta clase se le denomina VO o Value Object CiudadVO Clase de Acceso a Datos public class CiudadesDAO{ Ciudad ciudad; ……………………. //establece conexión con la BD public void insertarCiudad(){} public void eliminarCiudad(){} public Ciudad insertarCiudad(){ …. Select * from Ciudades where … } ……….. }

A tener en cuenta: Las aplicaciones del mundo real no están compuestas por el acceso a una sola tabla, por lo cual se usa el patrón FACTORY para implementar una fabrica de objetos DAO

Proceso para implementar la aplicación

1. Cree un proyecto que va a manejar el aplicativo propuesto. Por ejemplo, se va a generar un aplicativo que permita registrar mascotas en una veterinaria. Cree dentro del proyecto los paquetes pertinentes: Acá se almacenará la clase que realiza la conexión con la base de datos Acá se almacenará las clases de acceso a datos, junto con las debidas interfaces Acá se almacenará las clases de la lógica de negocio Acá se almacenará las clases de transporte de datos, o las clases persistentes Si hay interfaz gráfica, se debe crear un paquete de vista !!!!

2. En la pestaña de SERVICES, inicie el servidor DERBY, cree una base de datos VETERINARIA, y cree una tabla MASCOTAS, con campos ID, NOMBRE, EDAD de la mascota

3. En la pestaña de FILES, cree un package que se denomina LIBRERIAS 4. Descarge el jar Cliente del motor de la base de datos que se use y ubíquelo en esta carpeta

5. Configure el JAR dentro del path del proyecto. Haga click derecho sobre el nombre del proyecto (pestaña PROJECT), seleccione propiedades

6. Ubique la sección de LIBRERIAS en la ventana que se despliega, haga click en ADD JAR/Folder, busque la librería en el folder que creo dentro del proyecto, y adiciónela.

7. Para verificar que fue cargado correctamente, ubique la carpeta LIBRARIES de su proyecto, y confirme que allí esta cargada la librería. Hasta acá ya se tiene configurado el servidor, y el acceso del cliente al repositorio de los datos. A continuación se deben configurar las clases del proyecto que permitirán realizar las respectivas operaciones

8. En el paquete CONTROL.CONEXION cree la clase CONEXIÓN, que permitirá al driver conectarse a la Base de Datos a través del cliente import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; public class Conexion { private static Connection cn = null; private static Driver driver = new org.apache.derby.jdbc.ClientDriver(); private static String URLBD = "jdbc:derby://localhost:1527/veterinaria"; private static String usuario = "veterinaria"; private static String contrasena = "veterinaria"; public static Connection getConexion() throws SQLException { DriverManager.registerDriver(driver); cn = DriverManager.getConnection(URLBD, usuario, contrasena); return cn; } public static void desconectar(){ cn = null; }

8. En el paquete MODELO cree la clase que manejara el transporte de los datos (VO). Cree la clase MascotaVO, con los respectivos get y set de sus atributos (equivalentes a los atributos de la tabla) package Modelo; public class MascotaVO { private int id; private String nombre; private int edad; public MascotaVO() { } public MascotaVO(int id, String nombre, int edad) { this.id = id; this.nombre = nombre; this.edad = edad; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } }

9. En el paquete CONTROL.DAO cree la clase que accederá a los datos del repositorio. Cree la clase MascotaDAO, con los siguientes métodos import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import Control.Conexion.*; import Modelo.MascotaVO; import java.util.ArrayList; public class MascotaDAO { private Connection con; private Statement st; private ResultSet rs; public MascotaDAO() { con = null; st = null; rs = null; }

public void insertarDatos(MascotaVO mascota) { try { con = Conexion.getConexion(); st = con.createStatement(); String insercion = "INSERT INTO Mascotas VALUES(" + mascota.getId() + ",'" + mascota.getNombre() + "'," + mascota.getEdad() + ")"; st.executeUpdate(insercion); st.close(); Conexion.desconectar(); } catch (SQLException ex) { System.out.print("No se pudo realizar la insercion"); }

public ArrayList listaDeMascotas() { ArrayList misMascotas = new ArrayList (); String consulta = "SELECT * FROM Mascotas"; try { con = Conexion.getConexion(); st = con.createStatement(); rs = st.executeQuery(consulta); while (rs.next()) { MascotaVO mascota = new MascotaVO(); mascota.setId(rs.getInt("id")); mascota.setNombre(rs.getString("nombre")); mascota.setEdad(rs.getInt("edad")); misMascotas.add(mascota); } st.close(); Conexion.desconectar(); } catch (SQLException ex) { System.out.println("No se pudo realizar la consulta"); } return misMascotas; }

public ArrayList listaDeMascotas() { ArrayList misMascotas = new ArrayList (); con = Conexion.getConexion(); String consulta = "SELECT * FROM Mascotas"; try { st = con.createStatement(); rs = st.executeQuery(consulta); while (rs.next()) { MascotaVO mascota = new MascotaVO(); mascota.setId(rs.getInt("id")); mascota.setNombre(rs.getString("nombre")); mascota.setEdad(rs.getInt("edad")); misMascotas.add(mascota); } } catch (SQLException ex) { System.out.println("No se pudo realizar la consulta"); } cerrarCnx(); return misMascotas; }

10. En el paquete CONTROL.LOGICA cree la clase que controlará la reglas de negocio. Cree la clase Gestor, con los siguientes métodos import java.util.ArrayList; import Control.DAO.MascotaDAO; import Modelo.MascotaVO; public class Gestor { private MascotaDAO miMascotaDAO; public Gestor() { registrarMascota(); obtenerRegistros(); buscarMascota(); }

private void registrarMascota() { miMascotaDAO = new MascotaDAO(); MascotaVO miMascota1 = new MascotaVO(); miMascota1.setId(10); miMascota1.setNombre("Gatubela"); miMascota1.setEdad(1); miMascotaDAO.insertarDatos(miMascota1); MascotaVO miMascota2 = new MascotaVO(); miMascota2.setId(11); miMascota2.setNombre("Rocky"); miMascota2.setEdad(2); miMascotaDAO.insertarDatos(miMascota2); }

private void obtenerRegistros() { miMascotaDAO = new MascotaDAO(); MascotaVO miMascota; ArrayList listaMascotas = miMascotaDAO.listaDeMascotas(); if (listaMascotas.size() > 0) { int numeroMascota = 0; for (int i = 0; i < listaMascotas.size(); i++) { numeroMascota++; miMascota = listaMascotas.get(i); System.out.println("****************Persona " + numeroMascota + "**********"); System.out.println("Id Mascota: " + miMascota.getId()); System.out.println("Nombre Mascota: " + miMascota.getNombre()); System.out.println("Edad Mascota: " + miMascota.getEdad()); System.out.println("*************************************************\n"); } } else { System.out.println("Actualmente no existen registros de mascotas"); }

private void buscarMascota() { miMascotaDAO = new MascotaDAO(); MascotaVO miMascota; int codigo = 10; MascotaVO mascotaEncontrada = miMascotaDAO.consultarMascota(codigo); if (mascotaEncontrada != null) { System.out.println("****************Persona*************************"); System.out.println("Id Mascota: " + mascotaEncontrada.getId()); System.out.println("Nombre Mascota: " + mascotaEncontrada.getNombre()); System.out.println("Edad Mascota: " + mascotaEncontrada.getEdad()); System.out.println("*************************************************\n"); } else { System.out.println("No existen una mascota con ese codigo"); }

10. En el paquete CONTROL.LOGICA cree la clase que lanza la ejecución del aplicativo. Cree la clase LAUNCHER, con los siguientes métodos public class Launcher { public static void main(String[] args) { Gestor miPrincipal = new Gestor(); }