El documento describe los contenidos de un curso sobre JDBC y URM. Incluye secciones sobre JDBC, operaciones con JDBC como cargar drivers, conectarse a una base de datos, enviar órdenes SQL, sentencias preparadas, procedimientos almacenados, transacciones y optimizaciones. También cubre temas de aplicaciones web como JSP, Servlets y el patrón DAO.
El documento describe los contenidos de un curso sobre JDBC y URM. Incluye secciones sobre JDBC, operaciones con JDBC como cargar drivers, conectarse a una base de datos, enviar órdenes SQL, sentencias preparadas, procedimientos almacenados, transacciones y optimizaciones. También cubre temas de aplicaciones web como JSP, Servlets y el patrón DAO.
El documento describe los contenidos de un curso sobre JDBC y URM. Incluye dos bloques: JDBC para el acceso a bases de datos, y URM para mapeadores de objetos relacionales. Detalla los conceptos clave de JDBC como drivers, operaciones con JDBC, y ejemplos de código para conectarse a una base de datos, enviar consultas y cerrar la conexión. También cubre procedimientos almacenados, transacciones y otras funcionalidades avanzadas de JDBC.
Este documento resume los conceptos fundamentales de JDBC, incluyendo: 1) JDBC proporciona una interfaz para conectar Java con bases de datos SQL mediante sentencias SQL integradas en Java; 2) La clase DriverManager gestiona la conexión entre el código Java y el driver apropiado; 3) Los objetos Statement se usan para enviar consultas SQL y obtener resultados.
Este documento proporciona instrucciones para conectarse a bases de datos MySQL y SQL Server 2005 utilizando NetBeans IDE 6.1. Explica cómo cargar el controlador de base de datos, establecer la conexión, enviar consultas SQL y cerrar conexiones. También incluye tres ejemplos de código para conectarse a MySQL y SQL Server y realizar consultas desde un formulario de Java.
Unidad 9. acceso a base de datos desde javadevsco63
El documento habla sobre el acceso a bases de datos desde Java. Explica los estándares ODBC y JDBC para conectarse a bases de datos, el proceso de instalar el driver JDBC, establecer la conexión, enviar comandos SQL y crear bases de datos y tablas. También cubre cómo insertar y actualizar datos en las tablas.
Este documento proporciona una introducción al desarrollo de componentes EJB. Explica los tres tipos principales de EJBs - Entity Beans, Message-Driven Beans y Session Beans - y sus usos. También describe cómo crear, desplegar y utilizar un EJB, incluidos los pasos para definir interfaces, clases y empaquetar el EJB en un archivo JAR para su despliegue.
Tema 15 aplicaciones de dos capas por gioRobert Wolf
Una aplicación de dos capas separa el código de la aplicación del sistema de administración de la base de datos. En una aplicación de dos capas, el cliente contiene la interfaz de usuario y lógica del negocio, mientras que el servidor contiene un administrador de bases de datos. La API JDBC de Java proporciona una forma estándar para que un cliente Java se comunique con diferentes administradores de bases de datos a través de un protocolo.
La interfaz Java Database Connectivity (JDBC) permite la ejecución de operaciones sobre bases de datos desde Java de forma independiente al sistema operativo o base de datos. Se basa en interfaces Java y manejadores de conexión específicos para cada base de datos. Un objeto Statement se usa para enviar sentencias SQL a la base de datos mediante los métodos executeUpdate, executeQuery y execute.
El documento describe los contenidos de un curso sobre JDBC y URM. Incluye secciones sobre JDBC, operaciones con JDBC como cargar drivers, conectarse a una base de datos, enviar órdenes SQL, sentencias preparadas, procedimientos almacenados, transacciones y optimizaciones. También cubre temas de aplicaciones web como JSP, Servlets y el patrón DAO.
El documento describe los contenidos de un curso sobre JDBC y URM. Incluye dos bloques: JDBC para el acceso a bases de datos, y URM para mapeadores de objetos relacionales. Detalla los conceptos clave de JDBC como drivers, operaciones con JDBC, y ejemplos de código para conectarse a una base de datos, enviar consultas y cerrar la conexión. También cubre procedimientos almacenados, transacciones y otras funcionalidades avanzadas de JDBC.
Este documento resume los conceptos fundamentales de JDBC, incluyendo: 1) JDBC proporciona una interfaz para conectar Java con bases de datos SQL mediante sentencias SQL integradas en Java; 2) La clase DriverManager gestiona la conexión entre el código Java y el driver apropiado; 3) Los objetos Statement se usan para enviar consultas SQL y obtener resultados.
Este documento proporciona instrucciones para conectarse a bases de datos MySQL y SQL Server 2005 utilizando NetBeans IDE 6.1. Explica cómo cargar el controlador de base de datos, establecer la conexión, enviar consultas SQL y cerrar conexiones. También incluye tres ejemplos de código para conectarse a MySQL y SQL Server y realizar consultas desde un formulario de Java.
Unidad 9. acceso a base de datos desde javadevsco63
El documento habla sobre el acceso a bases de datos desde Java. Explica los estándares ODBC y JDBC para conectarse a bases de datos, el proceso de instalar el driver JDBC, establecer la conexión, enviar comandos SQL y crear bases de datos y tablas. También cubre cómo insertar y actualizar datos en las tablas.
Este documento proporciona una introducción al desarrollo de componentes EJB. Explica los tres tipos principales de EJBs - Entity Beans, Message-Driven Beans y Session Beans - y sus usos. También describe cómo crear, desplegar y utilizar un EJB, incluidos los pasos para definir interfaces, clases y empaquetar el EJB en un archivo JAR para su despliegue.
Tema 15 aplicaciones de dos capas por gioRobert Wolf
Una aplicación de dos capas separa el código de la aplicación del sistema de administración de la base de datos. En una aplicación de dos capas, el cliente contiene la interfaz de usuario y lógica del negocio, mientras que el servidor contiene un administrador de bases de datos. La API JDBC de Java proporciona una forma estándar para que un cliente Java se comunique con diferentes administradores de bases de datos a través de un protocolo.
La interfaz Java Database Connectivity (JDBC) permite la ejecución de operaciones sobre bases de datos desde Java de forma independiente al sistema operativo o base de datos. Se basa en interfaces Java y manejadores de conexión específicos para cada base de datos. Un objeto Statement se usa para enviar sentencias SQL a la base de datos mediante los métodos executeUpdate, executeQuery y execute.
El documento describe MyBatis como una alternativa a Hibernate para el mapeo objeto-relacional. MyBatis no es un ORM sino que mapea sentencias SQL a objetos Java a través de interfaces definidas en XML o anotaciones. Permite realizar operaciones CRUD de forma declarativa y ofrece características como cache y prevención de inyección SQL. Se explican ejemplos de uso de MyBatis con Spring y Maven así como técnicas comunes en los mappers como parámetros múltiples, reutilización de código SQL y mapeo de relaciones.
El documento habla sobre conexiones a bases de datos en Java usando JDBC y ODBC. Explica cómo configurar drivers JDBC y ODBC para acceder a diferentes bases de datos, y provee ejemplos de cómo realizar consultas, modificaciones y otras operaciones comunes en bases de datos usando JDBC.
Tema 9 aplicaciones de dos capas por gioRobert Wolf
Una aplicación de dos capas separa el código de la aplicación del sistema de administración de la base de datos. En Java, la API JDBC proporciona una interfaz estándar para que un cliente escrito en Java se comunique con administradores de bases de datos. La API JDBC consta de interfaces y clases que representan conexiones, sentencias SQL y resultados de consultas. Las aplicaciones de dos capas encapsulan esta funcionalidad en clases como Conexión y Tabla para establecer conexiones y ejecutar operaciones SQL de forma sencilla.
El documento explica cómo conectarse a una base de datos en Java usando JDBC. Se necesita descargar un conector como mysql-connector-java.jar para conectarse al servidor de base de datos. Se crea un objeto Connection usando el método getConnection() y luego un objeto Statement usando el método createStatement() de Connection para ejecutar sentencias SQL. Es importante cerrar los objetos Connection y Statement cuando ya no se necesiten para liberar recursos.
Continuación 3 de la creación de reportes con jasper reportjbersosa
Este documento describe cómo crear un visor de informes en Java para mostrar informes JasperReports. Se crea una clase VisorReporte que carga el informe, lo muestra en un visor y permite exportarlo a PDF. También se actualiza la clase Formulario1 para llamar a los métodos de VisorReporte al presionar un botón, cargando primero el informe con datos de la base de datos. La conexión a la base de datos se establece de forma estática y global mediante la clase Conexión.
Tema 16 acceso a base de datos usando jpa por gioRobert Wolf
1) El documento describe el acceso a bases de datos usando JPA, una capa de software que reduce la tarea de conversión entre objetos y datos relacionales. 2) JPA mapea objetos a tablas mediante anotaciones y permite operaciones CRUD. 3) Se explican diferentes tipos de mapeo como uno a uno, muchos a uno, herencia y entidades.
Este documento describe cómo acceder a bases de datos desde aplicaciones Java mediante la tecnología JDBC. Explica que JDBC proporciona una interfaz para enviar sentencias SQL a sistemas gestores de bases de datos y que la arquitectura de JDBC utiliza controladores específicos para cada base de datos. También resume los pasos para realizar una consulta SQL desde una aplicación Java usando JDBC, incluyendo la carga del controlador, la apertura de una conexión y la creación y ejecución de un objeto Statement.
Este documento resume los pasos realizados para instalar Java y compilar dos programas simples llamados "Saludo.java" y "Suma.java" usando comandos de línea de comandos. Describe cómo descargar e instalar el JDK de Java, configurar el PATH, escribir el código para cada programa en un editor de texto, compilarlos usando "javac", y ejecutarlos usando "java". Concluye que es necesario configurar correctamente el PATH de Java y que el archivo .class contiene el código en bytecodes para ser ejecutado por la má
JDBC permite establecer conexiones con bases de datos, enviar consultas SQL y procesar resultados. Existen cuatro tipos de controladores JDBC que varían en su dependencia de software adicional y capacidad multiplataforma, desde controladores que requieren software adicional hasta controladores 100% en Java. Los ejemplos muestran cómo conectarse a una base de datos usando JDBC, obtener información sobre tablas y cerrar la conexión.
El documento describe cómo conectarse a una base de datos desde Java usando JDBC. Primero se debe descargar el controlador JDBC apropiado y luego establecer una conexión mediante DriverManager.getConnection. Una vez conectado, se pueden crear objetos Statement para ejecutar consultas SQL y obtener resultados a través de objetos ResultSet.
Este documento describe conceptos relacionados con conexiones a bases de datos en Java, incluyendo JDBC, drivers, configuración de ODBC, consultas, modificaciones, prepared statements y stored procedures. Explica cómo conectarse a una base de datos, realizar consultas y modificaciones de tablas, y el uso de prepared statements y stored procedures.
1) La programación orientada a objetos permite crear sistemas complejos bien estructurados mediante el uso de objetos. 2) Los objetos son instancias de clases y tienen identidad, estado y comportamiento. 3) En Java, los objetos Connection, Statement y ResultSet se utilizan para establecer conexiones con bases de datos y ejecutar consultas SQL.
El documento describe el proceso de instalación de MySQL en Windows, incluyendo la descarga del programa, la ejecución del instalador, y la configuración de opciones como la ubicación de las tablas de base de datos, el número de conexiones permitidas, y la inclusión del cliente y servidor MySQL en la variable PATH. También crea una base de datos de prueba con una tabla y registro para probar la conexión desde Java.
Representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta en una base de datos de SQL Server. Representa una conexión abierta a una base de datos de SQL Server. Esta clase no puede heredarse.
Ejemplo de base de datos y reports con jasper reportjbersosa
Este documento describe cómo crear un reporte PDF utilizando JasperReports y una base de datos MySQL. Primero, se crea una clase de conexión a la base de datos y una tabla llamada "alumnos" con 10 registros. Luego, se agrega un botón a un formulario que inserta un nuevo registro a la tabla cuando se presiona. Finalmente, se revisa la base de datos actualizada para verificar que el registro se insertó correctamente.
Este documento describe el uso de objetos Statement en Java para ejecutar sentencias SQL en una base de datos. Los objetos Statement se crean a través de objetos Connection y se utilizan para ejecutar sentencias SQL simples, preparadas o de procedimientos almacenados. Los métodos executeQuery, executeUpdate y execute se usan para ejecutar diferentes tipos de sentencias SQL.
El documento describe el uso de objetos Statement en Java para ejecutar sentencias SQL en una base de datos. Los objetos Statement permiten ejecutar sentencias SQL simples, preparadas y de procedimientos almacenados. Se crean a través de objetos Connection y ofrecen métodos para ejecutar sentencias y obtener resultados.
El documento explica cómo conectar Java a una base de datos PostgreSQL. Primero se debe instalar el driver JDBC de PostgreSQL y cargarlo en el proyecto Java. Luego, se crea una conexión a la base de datos especificando la URL, usuario y contraseña. Finalmente, se ejecutan consultas SQL sobre la base de datos y se procesan los resultados con un ResultSet. El código muestra cómo realizar estas tareas para establecer la conexión y consultar datos de una tabla de la base de datos.
Diapositiva con una muy buena introduccion al manejo de bases de datos a través del lenguaje de Programación Java. Contiene además una introducción a Mysql, y además expica muy bien qué es el driver JDBC
El documento describe MyBatis como una alternativa a Hibernate para el mapeo objeto-relacional. MyBatis no es un ORM sino que mapea sentencias SQL a objetos Java a través de interfaces definidas en XML o anotaciones. Permite realizar operaciones CRUD de forma declarativa y ofrece características como cache y prevención de inyección SQL. Se explican ejemplos de uso de MyBatis con Spring y Maven así como técnicas comunes en los mappers como parámetros múltiples, reutilización de código SQL y mapeo de relaciones.
El documento habla sobre conexiones a bases de datos en Java usando JDBC y ODBC. Explica cómo configurar drivers JDBC y ODBC para acceder a diferentes bases de datos, y provee ejemplos de cómo realizar consultas, modificaciones y otras operaciones comunes en bases de datos usando JDBC.
Tema 9 aplicaciones de dos capas por gioRobert Wolf
Una aplicación de dos capas separa el código de la aplicación del sistema de administración de la base de datos. En Java, la API JDBC proporciona una interfaz estándar para que un cliente escrito en Java se comunique con administradores de bases de datos. La API JDBC consta de interfaces y clases que representan conexiones, sentencias SQL y resultados de consultas. Las aplicaciones de dos capas encapsulan esta funcionalidad en clases como Conexión y Tabla para establecer conexiones y ejecutar operaciones SQL de forma sencilla.
El documento explica cómo conectarse a una base de datos en Java usando JDBC. Se necesita descargar un conector como mysql-connector-java.jar para conectarse al servidor de base de datos. Se crea un objeto Connection usando el método getConnection() y luego un objeto Statement usando el método createStatement() de Connection para ejecutar sentencias SQL. Es importante cerrar los objetos Connection y Statement cuando ya no se necesiten para liberar recursos.
Continuación 3 de la creación de reportes con jasper reportjbersosa
Este documento describe cómo crear un visor de informes en Java para mostrar informes JasperReports. Se crea una clase VisorReporte que carga el informe, lo muestra en un visor y permite exportarlo a PDF. También se actualiza la clase Formulario1 para llamar a los métodos de VisorReporte al presionar un botón, cargando primero el informe con datos de la base de datos. La conexión a la base de datos se establece de forma estática y global mediante la clase Conexión.
Tema 16 acceso a base de datos usando jpa por gioRobert Wolf
1) El documento describe el acceso a bases de datos usando JPA, una capa de software que reduce la tarea de conversión entre objetos y datos relacionales. 2) JPA mapea objetos a tablas mediante anotaciones y permite operaciones CRUD. 3) Se explican diferentes tipos de mapeo como uno a uno, muchos a uno, herencia y entidades.
Este documento describe cómo acceder a bases de datos desde aplicaciones Java mediante la tecnología JDBC. Explica que JDBC proporciona una interfaz para enviar sentencias SQL a sistemas gestores de bases de datos y que la arquitectura de JDBC utiliza controladores específicos para cada base de datos. También resume los pasos para realizar una consulta SQL desde una aplicación Java usando JDBC, incluyendo la carga del controlador, la apertura de una conexión y la creación y ejecución de un objeto Statement.
Este documento resume los pasos realizados para instalar Java y compilar dos programas simples llamados "Saludo.java" y "Suma.java" usando comandos de línea de comandos. Describe cómo descargar e instalar el JDK de Java, configurar el PATH, escribir el código para cada programa en un editor de texto, compilarlos usando "javac", y ejecutarlos usando "java". Concluye que es necesario configurar correctamente el PATH de Java y que el archivo .class contiene el código en bytecodes para ser ejecutado por la má
JDBC permite establecer conexiones con bases de datos, enviar consultas SQL y procesar resultados. Existen cuatro tipos de controladores JDBC que varían en su dependencia de software adicional y capacidad multiplataforma, desde controladores que requieren software adicional hasta controladores 100% en Java. Los ejemplos muestran cómo conectarse a una base de datos usando JDBC, obtener información sobre tablas y cerrar la conexión.
El documento describe cómo conectarse a una base de datos desde Java usando JDBC. Primero se debe descargar el controlador JDBC apropiado y luego establecer una conexión mediante DriverManager.getConnection. Una vez conectado, se pueden crear objetos Statement para ejecutar consultas SQL y obtener resultados a través de objetos ResultSet.
Este documento describe conceptos relacionados con conexiones a bases de datos en Java, incluyendo JDBC, drivers, configuración de ODBC, consultas, modificaciones, prepared statements y stored procedures. Explica cómo conectarse a una base de datos, realizar consultas y modificaciones de tablas, y el uso de prepared statements y stored procedures.
1) La programación orientada a objetos permite crear sistemas complejos bien estructurados mediante el uso de objetos. 2) Los objetos son instancias de clases y tienen identidad, estado y comportamiento. 3) En Java, los objetos Connection, Statement y ResultSet se utilizan para establecer conexiones con bases de datos y ejecutar consultas SQL.
El documento describe el proceso de instalación de MySQL en Windows, incluyendo la descarga del programa, la ejecución del instalador, y la configuración de opciones como la ubicación de las tablas de base de datos, el número de conexiones permitidas, y la inclusión del cliente y servidor MySQL en la variable PATH. También crea una base de datos de prueba con una tabla y registro para probar la conexión desde Java.
Representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta en una base de datos de SQL Server. Representa una conexión abierta a una base de datos de SQL Server. Esta clase no puede heredarse.
Ejemplo de base de datos y reports con jasper reportjbersosa
Este documento describe cómo crear un reporte PDF utilizando JasperReports y una base de datos MySQL. Primero, se crea una clase de conexión a la base de datos y una tabla llamada "alumnos" con 10 registros. Luego, se agrega un botón a un formulario que inserta un nuevo registro a la tabla cuando se presiona. Finalmente, se revisa la base de datos actualizada para verificar que el registro se insertó correctamente.
Este documento describe el uso de objetos Statement en Java para ejecutar sentencias SQL en una base de datos. Los objetos Statement se crean a través de objetos Connection y se utilizan para ejecutar sentencias SQL simples, preparadas o de procedimientos almacenados. Los métodos executeQuery, executeUpdate y execute se usan para ejecutar diferentes tipos de sentencias SQL.
El documento describe el uso de objetos Statement en Java para ejecutar sentencias SQL en una base de datos. Los objetos Statement permiten ejecutar sentencias SQL simples, preparadas y de procedimientos almacenados. Se crean a través de objetos Connection y ofrecen métodos para ejecutar sentencias y obtener resultados.
El documento explica cómo conectar Java a una base de datos PostgreSQL. Primero se debe instalar el driver JDBC de PostgreSQL y cargarlo en el proyecto Java. Luego, se crea una conexión a la base de datos especificando la URL, usuario y contraseña. Finalmente, se ejecutan consultas SQL sobre la base de datos y se procesan los resultados con un ResultSet. El código muestra cómo realizar estas tareas para establecer la conexión y consultar datos de una tabla de la base de datos.
Diapositiva con una muy buena introduccion al manejo de bases de datos a través del lenguaje de Programación Java. Contiene además una introducción a Mysql, y además expica muy bien qué es el driver JDBC
JDBC permite a las aplicaciones Java interactuar con bases de datos relacionales. JDBC provee una interfaz uniforme independiente del motor de base de datos. Los drivers JDBC traducen las llamadas JDBC a llamadas específicas del motor de base de datos. Existen cuatro tipos de drivers JDBC, siendo el tipo 4 (100% Java) el más eficiente.
JDBC permite a las aplicaciones Java interactuar con bases de datos relacionales de forma independiente al motor de base de datos subyacente. JDBC proporciona una interfaz única mientras que los drivers JDBC traducen las llamadas JDBC a invocaciones específicas del motor de base de datos. Existen cuatro tipos de drivers JDBC, siendo el tipo 4 (100% Java) el más eficiente.
Este documento trata sobre el acceso a bases de datos desde aplicaciones Java mediante JDBC. Explica los pasos para registrar un controlador JDBC, abrir una conexión a la base de datos, ejecutar consultas SQL y recuperar los resultados. También menciona brevemente el manejo de excepciones, el uso de diferentes bases de datos y tipos de sentencias SQL.
El documento explica cómo conectar una aplicación Java Servlet a una base de datos usando JDBC. Primero se carga el driver de la base de datos, luego se establece la conexión mediante el método getConnection, indicando la cadena de conexión, el usuario y la contraseña. Finalmente, es importante cerrar la conexión después de usarla para liberar recursos.
Bases de Datos en en www.fiec.espol.edu.ecSilvana Vargas
El documento resume los conceptos clave de JDBC y SQL. JDBC permite a las aplicaciones Java interactuar con bases de datos relacionales de forma independiente al motor de base de datos subyacente. Existen cuatro tipos de drivers JDBC que se diferencian en cómo traducen las llamadas JDBC. SQL incluye sentencias como SELECT, INSERT, UPDATE y DELETE para recuperar, agregar, modificar y eliminar datos de bases de datos respectivamente.
El documento presenta una lista de libros y recursos sobre Java Database Connectivity (JDBC). Explica que JDBC es un conjunto de clases e interfaces Java para ejecutar sentencias SQL y acceder a bases de datos. Los objetivos son dominar el API de JDBC y ser capaz de conectarse a bases de datos remotas para realizar consultas y actualizaciones.
El documento describe cómo conectar una base de datos MySQL a una aplicación Java. Se explica la creación de una clase ConexionDB que establece la conexión y devuelve un objeto Connection. También se muestra el código de una clase Main que llama al método GetConnection de ConexionDB para comprobar que la conexión se realiza correctamente. Finalmente, se detallan los pasos para probar la conexión en NetBeans.
Este documento describe los pasos para crear una conexión a una base de datos Postgres utilizando JDBC, incluyendo identificar la base de datos, obtener el driver JDBC, configurar la variable CLASSPATH, importar java.sql, cargar el driver, obtener la conexión mediante DriverManager.getConnection(), utilizar la conexión para enviar consultas SQL y obtener resultados, y cerrar la conexión.
Este documento describe los pasos para crear una conexión a una base de datos Postgres utilizando JDBC, incluyendo identificar la base de datos, obtener el driver JDBC, configurar la variable CLASSPATH, importar java.sql, cargar el driver, obtener la conexión mediante DriverManager.getConnection(), y ejecutar consultas SQL.
Este documento describe los modelos de dos y tres capas para el acceso a datos, así como la configuración de conexión a una base de datos con NetBeans utilizando JDBC. Explica los pasos para incluir la librería JDBC, establecer la conexión, realizar consultas y cerrar la conexión. También define JDBC, sus tipos y aplicaciones, y provee ejemplos de código para insertar datos en una base de datos.
Este documento describe cómo conectar aplicaciones Java a bases de datos utilizando JDBC. Explica los cuatro tipos de drivers JDBC y cómo realizar consultas, inserciones y actualizaciones en una base de datos mediante objetos como Connection, Statement y ResultSet.
JDBC es una API de Java que permite ejecutar sentencias SQL para interactuar con bases de datos. Existen 4 tipos de drivers JDBC. Una aplicación JDBC establece una conexión a la base de datos, ejecuta consultas, y cierra la conexión. Para usar JDBC, se incluye el driver de la base de datos, se carga el driver, se establece la conexión, se ejecutan consultas, y se cierra la conexión.
Este documento explica cómo usar JDBC en Java para acceder a bases de datos. JDBC permite el acceso a diferentes bases de datos desde un único programa Java mediante el uso de drivers específicos. Se debe establecer una conexión con la base de datos usando un objeto Connection antes de poder interrogarla y modificarla mediante sentencias SQL. Los resultados de las consultas se almacenan en objetos ResultSet que permiten acceder a los datos devueltos.
Este documento resume el API JDBC y el mapeo de objetos de bases de datos a clases Java. Brevemente describe los tipos de controladores JDBC, el uso de bloques try-catch para manejar excepciones, y cómo crear clases que representen las tablas de una base de datos, con atributos y métodos para acceder a los datos.
El documento explica los conceptos fundamentales de JDBC, incluyendo cómo conectarse a una base de datos, ejecutar consultas SQL, procesar resultados y manejar excepciones. También cubre temas avanzados como preparación de sentencias, procedimientos almacenados, transacciones y soporte para cursores y múltiples resultados.
El documento describe los contenidos de un curso sobre JDBC y URM. Explica que JDBC se utiliza para el acceso a bases de datos y URM para mapeadores de objetos relacionales. Detalla los conceptos clave de JDBC como drivers, conexión a la base de datos mediante DriverManager, ejecución de sentencias SQL y uso de ResultSet.
El documento describe conceptos clave de seguridad en aplicaciones Java como criptografía, PKI, control de acceso, SSL y seguridad web. Explica la evolución del modelo de seguridad de Java desde JDK 1.1 hasta la introducción de ficheros de políticas de seguridad y JAAS, y cómo estos definen los permisos de acceso. También cubre temas como la implementación y localización por defecto de los ficheros de políticas de seguridad.
Este documento describe la administración de claves y certificados en aplicaciones Java. Explica las herramientas keytool y JarSigner para gestionar claves y firmar archivos JAR. También describe la infraestructura de clases clave KeyStore para la gestión programática de almacenes de claves.
Este documento describe los conceptos básicos de la criptografía en aplicaciones Java, incluyendo certificados digitales, autoridades certificadoras, el estándar X.509 para certificados y sus extensiones. Explica el formato de los certificados X.509, las funciones de las autoridades certificadoras y algunos ejemplos como FNMT.
Este documento describe la criptografía en aplicaciones Java. Explica el cálculo de huellas digitales usando la clase MessageDigest y los algoritmos hash. También cubre firmas digitales mediante el uso de claves públicas y privadas, describiendo las clases Signature, Mac, SignedObject y excepciones como SignatureException.
Este documento describe la criptografía en aplicaciones Java. Explica los conceptos clave de la arquitectura criptográfica de Java (JCA) y la extensión criptográfica de Java (JCE), incluidos los proveedores, clases engine, claves criptográficas, generación de claves y servicios criptográficos. También cubre temas como la encriptación, firma digital y seguridad en aplicaciones web.
Este documento describe la criptografía en aplicaciones Java. Explica conceptos clave como la seguridad, la evolución del modelo de seguridad de Java, y las características de seguridad en J2EE. También define la criptografía y los sistemas criptográficos simétricos y asimétricos, así como la confidencialidad y la integridad.
Este documento establece las medidas de seguridad que deben aplicarse a los ficheros automatizados que contengan datos personales de acuerdo con tres niveles: básico, medio y alto. Define conceptos clave como sistema de información, usuario, recursos, accesos autorizados, e incidencia. Determina que todos los ficheros deben cumplir como mínimo el nivel básico y especifica cuales deben cumplir nivel medio u alto dependiendo del tipo de datos. Describe las medidas de seguridad de nivel básico como la elaboración de un document
Business Plan -rAIces - Agro Business Techjohnyamg20
Innovación y transparencia se unen en un nuevo modelo de negocio para transformar la economia popular agraria en una agroindustria. Facilitamos el acceso a recursos crediticios, mejoramos la calidad de los productos y cultivamos un futuro agrícola eficiente y sostenible con tecnología inteligente.
En la ciudad de Pasto, estamos revolucionando el acceso a microcréditos y la formalización de microempresarios informales con nuestra aplicación CrediAvanza. Nuestro objetivo es empoderar a los emprendedores locales proporcionándoles una plataforma integral que facilite el acceso a servicios financieros y asesoría profesional.
1. Contenido TOC quot;
1-3quot;
Contenidos del curso PAGEREF _Toc265076344 2JDBC PAGEREF _Toc265076345 3Drivers PAGEREF _Toc265076346 3Operaciones con JDBC PAGEREF _Toc265076347 4Carga de drivers PAGEREF _Toc265076348 4Conectar/desconectar a BD PAGEREF _Toc265076349 4Enviar órdenes a la BD. Sentencias PAGEREF _Toc265076350 8Sentencias preparadas PAGEREF _Toc265076351 12Procedimientos almacenados PAGEREF _Toc265076352 13Tansaciones PAGEREF _Toc265076353 14Optimizaciones y otras mejoras PAGEREF _Toc265076354 15Porcentaje de carga: PAGEREF _Toc265076355 15Actualizaciones en modo bach PAGEREF _Toc265076356 15Nuevos tipos de resultSet PAGEREF _Toc265076357 16No asistí a clase . PAGEREF _Toc265076358 17EntityManager PAGEREF _Toc265076359 18Creacción de las clases URM en un proyecto con un modelo de datos existente PAGEREF _Toc265076360 18Queryes con nombre. Anotaciones PAGEREF _Toc265076361 22Patrones de diseño. DAO PAGEREF _Toc265076362 23Persistencia de relaciones entre clases PAGEREF _Toc265076363 24Aplicaciones WEB PAGEREF _Toc265076364 28Curiosidades PAGEREF _Toc265076365 29<br />Lunes 14 Junio<br />Contenidos del curso<br />Dos bloques claramente distinguidos: JDBC (acceso a base d edatos) y URM (mapeadores de objeto relación)<br /> JDBC APLICACIÓN WEB<br /> <br />AD (acceso datos) A Web (aplicación web)<br />Clásica (desktop) Orientación objetos JSPServlet<br />Libro: “Web development with Java” que cubre la parte de aplicaciones Web<br />El blog del profe: http://formanntt.blogspot.com/<br />Sobre la tecnología del curso:<br />La herramienta sobre la que trabajaremos es NetBeans 6.8, que es la versión estable.<br />Guía de referencia rápida de JDBC: C:CSEunes 14 de junio de 2010ocumentaciónanual Jdbc.htm<br />El directorio de los ejemplos se guardarán en: C:CSEunes 14 de junio de 2010jemplos<br />Necesitamos una base de datos que puede ser cualquiera por ejemplo: Derby, MySQL…<br />Para nosotros será MySQL que la encontramos en: Inicio> Progarmas > MySQL<br />Clave: root<br />Cuanto más actualizada este la versión que utilicemos de java podremos hacer el mismo trabajo pero trabajando menos. (JSE v6.0 Edición Standard java, JEE v.6.0 versión Enterprice de java y JME tecnología de móviles en java)<br />La primera tecnología que veremos en el curso que forma parte de la edición Estándar es la JDBC (Conectividad para bases de datos en java) y por tanto es aplicable a cualquier aplicación java.<br />JDBC es un API (interface para la creación de aplicaciones, biblioteca de clases para facilitarnos los accesos a datos), i.e, es una especificación de cómo se debe acceder a la base de datos y además es una implementación.<br />JDBC<br />[ver 2.1]<br />La arquitectura de esta herramienta sigue el siguiente esquema:<br />Este primer nivel es el código que nosotros escribimos<br />JBDC para el Acceso a datos<br />Los drivers son los únicos que saben que están “hablando” con una BD. Son los que nos van a dar la conexión a la BD.<br /> JDBCnapDrivers 1Drivers 2BD2BDOracleSon las BD a las que se accede<br />Drivers<br />[ver 2.3]<br />Para funcionar únicamente necesita java. Todas las aplicaciones que actualmente existen en java tiene los drivers para ejecutarlos de tipo 4.<br />Un driver es una clase java con la diferencia que el driver debe implementar la interface, DRIVER, para que java reconozca que es un driver.<br />Los drivers traducen cualquier sentencia SQl de forma que la BD a la que vaya a acceder sea capaz de entenderla.<br />Operaciones con JDBC<br />Los JBDC nos permite conectar/desconectar a la base de datos, obtener los datos y procesar los resultados que nos devuelva. [ver 3. Clases del API JDBC.]<br />Se utiliza la clase “Class” que es una metaclase, la diferencia entre una clase y una metaclase es que las instancias de esta metaclae definen o representan las características de otras clases<br />Carga de drivers<br />[Ver 3.1]<br />Para acceder la BD lo primero que se ha de hacer es cargar el driver en memoria con el que vamos a acceder a la BD.<br />Para ello, la forma más útil y que se usa en el día a día es usar el método de la metaclase llamado: forName. Se invocaría como class.forName y este método nos permite cargar en memoria el driver que indiquemos.<br />Por ejemplo:<br />Class.forName(“uno.A”); buscara en el disco duro la clase “A” que estará en el paquete “uno”, si no encuentra la clase “A” lanzará una excepción si la encuentra ya tendremos cargado el driver en memoria para su utilización. <br />Para encontrar la clase debe estar en el classpath (variable de entorno que contiene una serie de directorios donde hay clases java compiladas) del sistema.<br />Conectar/desconectar a BD<br />[Ver 3.2]<br />Conectar<br />Supongamos ya tenemos cargado el driver y ahora nos queremos conectar a la BD.<br />Debemos recurrir a la clase DriverManager, que se encarga de gestionar los driver que tenemos en memoria.<br />Definiremos un objeto de la clase : Connection con = new Conecction();<br />y después hay que utilizar el método getConection() que nos devolverá un objeto que implementará la clase DriverManager.<br />Este método necesita tres parámetros, todos ellos de tipo “string”:<br />url (localizador uniforme de parámetros). Tiene el siguiente formato:<br />protocolo : nombredriver : localización de la BD indicando máquina y puerto(opcional)<br />Ejemplo: para conectarme a la base de datos de “derby” escribiría la url:<br />jdbc:derby://localhost:1527/curso<br />usuario<br />clave<br />Desconectar<br />Se coge la clase con la que trabajemos y llamamos al método close().<br />Ejemplo: con.close();<br />Es importantísimo llamar al método close() porque si no se cierra explícitamente se podría quedar conectado al servidor remoto de la BD.<br />EJERCICIO 1: UN programa que nos conecte y desconecte de una Base de Datos<br />Conexiones con BD en NetBeans<br />Desplegamos APP:<br />Esto que obtenemos es un intérprete de la BD.<br />Nos hemos asegurado que tenemos BD en el ordenador.<br />Ese check nos permitirá importar tbn las librerías para que si arrancamos esta nueva clase en otro lugar no nos de error de no encontrar las librerías.<br />El código de programa es:<br />// Clase que conecta y desconecta de la base de datos<br /> try {<br /> System.out.println(quot;
Invocamos al método forNamequot;
);<br /> Class.forName(quot;
org.apache.derby.jdbc.ClientDriverquot;
);<br /> System.out.println(quot;
Creamos la conexiónquot;
);<br /> Connection con = DriverManager.getConnection(quot;
jdbc:derby://localhost:1527/cursoquot;
, quot;
appquot;
, quot;
appquot;
);<br /> System.out.println(quot;
Cerramos la conexiónquot;
);<br /> con.close();<br /> } catch (SQLException ex) {<br /> Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);<br /> }<br />Martes 15 Junio<br />Antes de ejecutar un programa debo conectarme a la base de datos para lo cual:<br />Enviar órdenes a la BD. Sentencias<br />[Ver 3.3]<br />Para crear una sentencia debemos crear una variable de tipo Statement, y escribir el código:<br />Statement stmt = con.createStatement(); con es la conexión que he abierto anteriormente<br />Y a continuación decirle la orden de SQL que queremos que ejecute.<br />Java distingue entre dos tipos de órdenes para ejecutar:<br />Queryes mediante la sentencia “select” stmt.executeQuery (“SELECT …”);<br />Todo lo demás: insert, delete, update,… stmt.executeUpdate (“INSERT | UPDATE | DELETE | CREATE | …”);<br />Todo lo que no sea sentencia<br />Donde stmt es la variable de tipo Statement que hemos declarado con anterioridad.<br />Estos métodos nos devuelven un número que será el número de filas que han sido “modificadas” con esta sentencia. No será obligatorio capturar este valor que devuelve salvo que lo queramos usar para algo.<br />Cuando se termina de trabajar con un Statement se debe cerrar con la instrucción:<br />Stmt.close();<br />Ej:<br />String x=”insert into…..”<br />stmt.executeUpdate(x);<br />stmt.close();<br />EJERCICIO: Creamos tabla en BD para poder realizar consultas a través de java.<br />Los Strings desde java los haremos con simples comillas simples.<br />La clase se llama Primera_1:<br />try {<br /> System.out.println(quot;
Invocamos al método forNamequot;
);<br /> Class.forName(quot;
org.apache.derby.jdbc.ClientDriverquot;
);<br /> System.out.println(quot;
Creamos la conexiónquot;
);<br /> Connection con = DriverManager.getConnection(quot;
jdbc:derby://localhost:1527/cursoquot;
, quot;
appquot;
, quot;
appquot;
);<br /> java.sql.Statement stmt = con.createStatement();<br /> System.out.println(quot;
Insert en la BDquot;
);<br /> String i1 = quot;
INSERT into personas (id,nombre) values (1,'nombre1')quot;
;<br /> stmt.executeUpdate(i1);<br /> String i2 = quot;
INSERT into personas (id,nombre) values (2,'nombre2')quot;
;<br /> stmt.executeUpdate(i2);<br /> String i3 = quot;
INSERT into personas (id,nombre) values (3,'nombre3')quot;
;<br /> stmt.executeUpdate(i3);<br /> System.out.println(quot;
Update en la BDquot;
);<br /> String u2 = quot;
UPDATE personas set nombre= 'nombreActualizado' where id=2quot;
;<br /> stmt.executeUpdate(u2);<br /> System.out.println(quot;
Delete en la BDquot;
);<br /> String d3 = quot;
DELETE from personas where id in(1,2,3)quot;
;<br /> stmt.executeUpdate(d3);<br /> System.out.println(quot;
Cerramos la conexiónquot;
);<br /> con.close();<br /> } catch (SQLException ex) {<br /> Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);<br /> }<br /> Sentencias<br />Para ejecutar sentencias utilizaríamos la sentencia:<br />String consulta= “Select….from…”<br />stmt.executeQuery (consulta);<br />Esto nos devolverá una colección de filas. EN java tenemos una colección (metaclase) especial para guardar las filas de una consulta:<br />ResultSet rs = stmt.executeQuery (consulta);<br />Supongamos que la consulta nos va a devolver un número enorme de resultados…entonces el servidor se quedará “frito” para ello y JDBC hace lo siguiente:<br />resultSet Jdbc BD<br />jdbc le dice a la BD que le devuelva un número adecuado de filas y esas son las que mete en el resultSet, entonces cuando vayamos recorriendo este resultSet las primeras N filas nos las devuelve del servidor de cliente y cuando se vayan acabando irá a la BD a buscar la otras N filas, de este modo nos aseguramos que se pueden obtener todas las filas sin dejar “colgado” el servidor. Lógicamente durante todo este proceso la conexión con la BD debe estar abierta, en cuanto se cierre el resultSet se invalida.<br />La relación entre los objetos … es jerárquica:<br />Connection puede tener cualquier número de St abiertos<br />Statement puede tener cualquier número de rs abiertos<br />resultSet<br />De forma que si cierro al “padre” de cualquiera de ellos invalidaré al que esté por debajo.<br /> Entonces para abrir las connection, Sattement o resultSet, lo haré de arriba abajo y para cerrarlos de abajo a arriba.<br />Nota: Se deben crear siempre para programar bien el número mínimo de conexiones necesarias.<br />Para recorrer el rs utilizaríamos por ejemplo un bucle while, cuya sintaxis será:<br />While (rs.next()) se ejecutará mientras haya filas que devolver.<br />Las columnas se numeran de izquierda a derecha de forma consecutiva comenzando por 1.<br />También se pueden recuperar indicando el nombre de la columna.<br />OJO algunos drivers no me permiten acceder por parémetro posicional para obtener los valores<br />Los pasos imprportantesson:<br />Se debe llamar al método next()<br />Acceder por parámetro posicional para obtener los valores<br />No leer más de dos veces cada línea<br />4…..cual es??<br />EJERCICIO: La clase se llama Ejercicio_2<br />Documentación para esto: http://java.sun.com/javase/6/docs/technotes/guides/jdbc/getstart/GettingStartedTOC.fm.html<br />Sentencias preparadas<br />[ver 3.4] ACADEMIA<br />El ejercicio es : ejemplo 3.1<br />Miércoles 16 Junio<br />Procedimientos almacenados<br />[Ver 3.5]<br />Para la ejecución en remoto de un procedimiento almacenado.<br />Debo definirme una variable de tipo:<br />CallableStatement cstmt = con.prepareCall (“{call ProcAlmacenado (?,?,?, …, ?)}”);<br />Donde “procAlmacenado” es el nombre del procedimiento almacenado que exista en la base de datos.<br />OJO HAY UN ERRRO EN LA SINTAXIS DE LOS APUNTES, LA CORRECTA LA INDICO AQUÍ.<br />La sintaxis correcta para llamar a PROC y a FUNC es: <br />Para PROC: {call f(?,?)}<br />Para FUNC: {? = call CrearPersona(?,?)}<br />Si el PROC tiene parámetros hay que definirlos. En BD tenemos para los PROC tres tipos de parámetros:<br />IN el servidor solo puede leer, no escribir el parámetro<br />OUT el servidor solo puede escribir, no leer el parámetro<br />IN/OUT el servidor puede leer y escribir el parámetro<br />Cuando un parámetro es de salida hay que decírselo a java y esto se hace mediante la el método:<br />Para PROC: cstmt.registerOutParameter (Types.INTEGER);<br />Para FUNC: cstmt.registerOutParameter (1, Types.INTEGER);<br />en el que se indica el parámetro que es de salida y el tipo de datos al que pertenece el parámetro de salida.<br />A continuación se dan valor a los parámetros al igual que ocn las sentencias predefinidas con los métodos ser.<br />Y finalmente se ejecutará el procedimiento teniendo en cuenta que si el PROC almacenado ejecuta a una sentencia o select se llamará al método “cstmt.executeUpdate();” y si no es una sentencia o select se utilizará: cstmt.executeQuery(); <br />Ejemplo:<br />CallableStatement cstmt = con.prepareCall (“? = call CrearPersona (?,?)”);<br />cstmt.registerOutParameter (1, Types.INTEGER);<br />cstmt.setInt (2, 13456789);<br />cstmt.setString (3, “Bart”);<br />cstmt.execute();<br />int n = cstmt.getInt(1);<br />OBSERVACIÓN: Con la BD de “ApacheDerby” todo esto no funciona, es decir, no se pueden manejar de este modo los PROC ni FUNC<br />El método: Execute(); se utiliza para ejecutar procedimientos mixtos, es decir, si en el PROC almacenado existen sentencias select peor tbn tiene otras instrcciones insert, update, delete… entonces debemos usar este método y no el executeQuery o executeUpdate.<br />Ejercicio: abrimos el proyecto “UsoJdbcMySql “ que está en la careta de apuntes del profesor del lunes 14 de Junio. <br />Recordemos que como vamos a utilizar la base de datos MYSQL, con lo que deben esar instalados los drivers de MySQL en el path de la máquina.<br />Este ejemplo nos da la sintaxis para crear un modelo de datos a través de un programa java.<br />No es lo más útil peor si nos da una herramienta o una ayuda por si alguna vez y por temas de portabilidad nos interesa crear así el modelo.<br /> Tansaciones<br />[ver 3.7]<br />El objetivo de una transacione es agrupar un conjunto de sentencias SQl en un mismo “paraguas”, es decir, que en el momento que una de ellas falle se desharán todas las acciones realizadas hasta entonces en la BD.<br />Si todas las sentencias han ido bien se realiza un commit(); y si falla se hace un rollback();.<br />Jdbc cada vez que se lanza una sentencia con éxito hace automáticamente un commit(),pero hay que indicarle que lo haga.<br />Para ello usamos el método: con.setAutoCommit (false);<br />False las transacciones serán controladas manualmente por el programador. En este caso tras la realización de la ssentencias de debe llamar además la método con.commit();<br />True las transacciones las hace automáticamente jdbc.<br />Ej:<br />Try{<br />Con.setautoCommit(false); //toma el control el programador<br />S1----<br />S2-----<br />S3----<br />Con.commit(); // todo ha ido bien<br />}catch (SQLException e){<br />Con.rollback(); //algo ha fallado<br />}finally{<br />//el código dentro de un finally se ejecuta siempre salten o no excepciones<br />Con.setAutocommit(true); //toma el control jdbc<br />}<br /> Un nivel de aislamiento o de transacción bloquea procesos sobre una sentencia hasta que la transacción correspondiente haya terminado.<br />Hay varios niveles de aislamientos, que se consultan en la API´s de java mejor.<br />Optimizaciones y otras mejoras<br />[ver 5]<br />Existen varias optimizaciones para la marcha de las aplicaciones:<br />1.- Sentencias preparadas que ya las conocemos<br />2.- Uso de PROC almacenados<br />Vamos a ver otras que se han comentado de pasada y ahora detallaremos.<br />Porcentaje de carga: <br />[ver 5.1]<br />setFechtSize() permite cambiar le procentaje de carga a nivel de resultSet o a nivel de Statement (en este caso todos los resulSet herdarán estas porcentaje de carga)<br />getFechtSize() nos dice el porcentaje de carga del que disponemos.<br />Se aconseja que el porcentaje de carga no se modifique, hasta que no sepamos a quién se la debemos aplicar, es decir, saber de “en que” gasta el tiempo la aplicación y “que hacen los usuarios finales” con la aplicación.<br />Actualizaciones en modo bach<br />[ver 5.2]<br />Lo que se hará es minimizar el tráfico cliente-servidor d elas aplicaciones.<br />Se tiene el método addBatch(), cuando se lanzan sentencias teniendo un addBatch() jdbc no envía la sentencia a BD sino que las guarda en un “cajón” hasta que encuentra el método executeBatch() que lanzará todas las sentencias en un mismo “round”, de una vez todas juntas y no con un round por cada sentencia.<br />Así en vez de tener N rounds tendré 1 round con todas las sentencias, con lo que habremos disminuido sustancialmente el tráfico.<br />Este modo no aumenta la carga en el servido en ningún caso, por lo que no se conocen “efectos negativos”.<br />Nuevos tipos de resultSet<br />[ver 5.3]<br />Con los nuevos tipo de result set podemos hacer:<br />Recorrerlo en ambos sentidos<br />Movimiento absoluto: xEj:“vete a la fila 14”<br />Movimiento relativo: xEj: “desde donde estas sube 5 filas, -5, y luego baja 14 filas, +14”<br />Insertar/borra/actualizar filas desde dentro del rs: xEj: “si me encuentro el valor 2 en el rs insertar una nueva fila en la tabla MiTabla..”<br />Para crearlos: <br />Statement st = con.createStatement(parametro1,prametro2)<br />A tener en cuenta: <br />Cuanto más nuevo sea un rs más lento será. Todo lo que se haga con los nuevos rs se puede hacer con los rs más simples de todos que son los que hemos expliacdo estos días atrás, puesto que todo será más rápido.<br />La mayoría de las operaciones de nuevos rs no las soportan muchas BD. Si el Apartado[6] nos lo deja como ejercicio para nosotros y no lo haremos aquí.<br />EJERCICIO: Prácticas del epígrafe 8. Están resueltas en el paquete UsoJdbcMySql “ que está en la careta de apuntes del profesor del lunes 14 de Junio.<br />Vamos a revisar el código <br />Jueves 17 Junio<br />No asistí a clase .<br />Se tocaron temas de persistencia [Ver …]<br />Comenzaron con JPA (Java persistence api)<br />Lunes 21 Junio<br />…Continuación del Jueves JPA…<br />EntityManager<br />Se crea un EntityManager por cada conexión a una base de datos que desee.<br />Intentar usar un único EntityManager por cada método. <br />Después abriré una transacción de forma obligatoria.<br />Ver ejemplo Miércoles 16 Junio del proyecto “JpaUnaClase0000” la clase Principal.<br />EL método merge():<br /> //Nota: la llamada al método merge es innecesaria<br />Se usa para actualizar versiones. Pero no es necesario pues cuando se opera con un objeto de tipo “EntityManager” al hacer el commit() se actualiza de forma automática todas las versiones. <br />El EntityManager debe estar abierto y debe conocer los objetos. <br />Sin embargo si le hago persistente al hacer el el commit() los actualizará de forma automática.<br />Si utilizase más de un entityManager y lo cierro cuando no lo utilice todas las actualizaciones se harán de forma automática. Si utilizase uno al pripio d elcódgio que siempre sestuviese abierto tendrái que controlar “su crecimiento” a través d elos métodos:<br />Flush: hará una actualización de tofo <br />clear: Borrar el caché de la BD<br />Por eso se aconseja utilizar solo uno.<br />Para crear un objeto EntityManager debo llamar al Método CreateEntityManager.<br />Creacción de las clases URM en un proyecto con un modelo de datos existente<br />Si en un proyecto ya existe un modelo de Datos pero no existen las clases.<br />Ver ejemplo: JavaApplication23<br />Creo una clase nueva para nosotros: JavaApplication23<br />Botón derecho para hacer “ingeniería Inversa”. Y selecciono opción: Entity Classes for database<br />Añado la tabla PERSONA sobre la que haremos IngenieriaInversa:<br />Este check tiene que estar marcado, porque si hay relaciones entre muchas tablas al hacer ingenieria inversa habrá que hacer a mano muchas cosas para dejarlo bien.<br />La ingeniería inversa por tanto con tablas aisladas o tablas relacionadas de 1 a n, si trabajan bien.<br />Al llegar a la pantalla:<br />Nos informa queno hay unidad de persistencia y nos indica si queremos que la herramienta nos ayude, para ello pulsamos el botón: Create persistence unit…<br />Sleccionamos como proveedor a Hibernate:<br />Lo aceptamos y seguimos el proceso llegando a esta pantalla, en la que marcamos los checks.<br />19570148<br />Nos crea en la carpeta META-INF el xml de persistence. (Que explicaron el jueves) y nos crea el código de java de las clase correspondiente a la tabla de la BD. Que justo es d elo que se trataba la Ingeniería Inversa.<br />Queryes con nombre. Anotaciones<br />[ver clase Personadel proyecto nuevo creado: JavaApplication23]<br />@Temporal: <br />@Lob: LargeObject<br />@NamedQuery (name= “Persona.findByNombre”, query = “SELECT P FROM PERSONA P”)<br />PRACTICA: montra un proyecto que tenga persistencia<br />Ver Ejemplo miércoles 16 : JpaUnaClase0002<br />Martes 22 Junio<br />Patrones de diseño. DAO<br />Si el código esta bajo JPA y cambiamos a hibérnate el código puede ser que no compile..<br />Para resolver esto existen los “Design Pattens” o patrones de diseño.<br />Los patrones de diseño, es una estrategia que se sabe que va a funcionar para resolver un escenario determinado, es decir, una solución estándar que se sabe por anticipado que va a funcionar para un escenario problemático determinado. Pero ojo no tiene por qué ser la solución óptima.<br />Los patrones de diseño más utilizados en la tecnología java son los GoF (Gangs of four). <br />Nota Si queremos información sobre esto solicitarla al profe por el foro<br />Nota: Recapitulando lo visto hasta hoy en curso tendremos la estructura: Jpa > ORM > Jdbc > BD.<br />El patrón de diseño más simple que hay es el DAO (objeto de acceso a datos).<br />Cliente (cliente ) DAO (interface que ve el cliente) JpaDaO (implementación de la interface DAO)<br />Si el día d emañana quiero utilizar Hibernate en vez de JPA bastará implementar una nueva interface en hibérnate y para el cliente será totalmente trasparente. Y lo mismo si nuevamente quisiera vambiar de tecnología y utilizar otra como por ejemplo Jdbc t tendría que implementar jdbcDAO.<br />Ejemplo: JpaUnaClase0002<br />El patrón DAO nos sirve para enumerar todos los métodos de una clase persistente de una sola “atacada” en el ejemplo será la clase PersonaDAO. Esta interface es publica peor su implementación no lo será.<br />Luego tendremos que tener una clase que nos implemente el DAO. En el ejemplo es la clase PersonaDAOImple.<br />En el ejemplo el main está en un paquete distinto a en el que está la implementación del DAO, para que se puedan utilizar se ha creado otro patrón de diseño llamado Singleton, y que en el ejemplo es la clase: PersonaManager.<br />En el escenario siguiente:<br />Solo una instancia de una clase: para o cual se llama <br />Que sea instanciada desde cualquier sitio: para ello el constructor se define como privado y los atributos se define como privado y estático<br />Es donde se suele utilizar justamente este patrón de diseño llamado singleton.<br />El método getInstance() es el que nos asegura que únicamente se va a instanciar el Personamanager una única vez puesto que el “if” del código tras haberlo instanciado mñas de una vez siempre nos devolverá el mismo objeto.<br />Si ahora quiero trabajar con los métodos del DAO, me creo el método getPersonaDao() que nos devolverá un objeto de tipo implementación de la clase PersonaDao.<br />Si quiero cambiar de tecnología lo que cambiaré es justamente este método:<br />En el ejemplo tenemos:<br />public PersonaDao getPersonaDao() {<br /> return new PersonaDaoImpl();<br /> }<br />Si quiero usar jdbc haré:<br />public PersonaDao getPersonaDao() {<br /> return new PersonajdbcImpl();<br /> }<br />Nota: En un escenario real de PROD cuanto menos nos “cueste” (rápido, fácil y barato) introducir cambios será un indicador de que la aplicación está bien programada, tal y como es el objetivo de la programación orientada a objetos.<br />Ver también ejemplo jueves 17 junio : JpaDosClases0001<br />Persistencia de relaciones entre clases<br />[Carpeta jueves 17 Junio. Ejemplo: JpaDosClases0001]<br />La relaciones que hay entre clase en java son muy similares a las que hay en UML.<br /> Ejemplo: <br /> La relación entre una Persona y su Afición puede tener distintas relaciones:<br />1----- 1 ( de una a una): Aficion A; Perosna p;<br />1 ---- * (de una a muchas): Persona p; List<Aficion> l;<br />*----*(de muchas a muchas) List<Persona> pl ; List<Aficion> la;<br /> En JPA esto se representa con las anotaciones:<br />@OneToOne<br />@ManyToMany<br />@OneToMany<br />@ManyToOne <br />En relaciones de 1 a muchos (1 *) necesitamos que se haga persistencia en objetos declarados en cascada. Podemos mandar a JPA que haga la persistencia en cascada. Una operación en cascada en JPA significa que cuando se le dice al urm que haga persistencia sobre un objeto también lo hará sobre todos los objetos que cuelguen de él.<br />En JPA se hace con el comando “cascade”.<br />Academia (18:00h 19:30h)<br />Miércoles 23 Junio<br />Ejemplo de persistencia carpeta del jueves 17Junio: EjemplosPersistencia y en la clase EjemplosPersistencia-ejb existen ejemplos de cómo hacer mapeos de relaciones de todos los tipos]<br />Cualquier clase que compile el URM las hará persistente, y podrá elegir entre tres estrategias distintas para realizarlo:<br />SingleTabe<br />Joined<br />Table per class<br />Veámoslo en un ejemplo:<br />idxyDTYPE18nullA253B1)Modelo singleTable: Es el que emplea URM por defecto. Crea una tabla para todas las clases y un campo discriminador que nos dice a que clase pertenece cada línea AA X:intid@ heredaBy:int@2) Joined: crea una tabla por cada clase A Bidx idy FK3)Table per Clae: crea una tabla por clase en la que repite todos os atributos de cada tabla. A Bidx idyx<br />El modelo 1) es el más “feo” peor el más eficiente, por eso es el que URM elige por defectoPor tanto por defetco usa la estrategia 1) peor si quiero que use otra d ela sestrategias hay que indicárselo.<br />El código es: <br />1º caso Modelo 1<br />@Inheritance(strategy=InheritanceType.SINGLE_TABLE)<br />2º caso Modelo 2<br />@Inheritance(strategy=InheritanceType.JOINED)<br />3º caso Modelo 3<br />@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)<br />Ejemplo: EjemploHerencia del día Martes 21.<br />Aplicaciones WEB<br />Lo que nos interesarán son las : www: World wide web<br />Servidor ClienteServidor Web<br />Para comunicar el cliente con la web se necesita un protocolo de comunicación que para nosotros será HTTP :<br />Lo que se manda a un servidor web es una “request” y lo que el servidor responde se llama “response”<br />Ej: <br />http://www.google.es/index.html<br />El dominio de una url es lo que identifica un ordenador concreto. Ej: google.es<br />Una dirección IP tiene el formato: 127.0.0.1 y representa al localhost desde el que se realiza la llamada.<br />Cuando se teclea una url lo primero que hará explorer es preguntarle al DNS(Servicio de nombre de dominio).<br />Curiosidades<br />http: protocolo trasferencia de hipertexto<br />www: worl wile web<br />Ley no escrita de la informática: “Todo programa se tira el 90% de su tiempo en el 10% del código.”<br />url: Localizador uniforme de resursos<br />ftp: potocolo de transporte de archivos. Otro modo de que dos ordenadores intercambien información.<br />TCP/IP: protocolo de transporte / protocolo de internet<br />