IFCD0183

Persistencia y acceso a datos en Java

Adquirir un conocimiento del lenguaje Java y sus tecnologías asociadas, para crear aplicaciones persistentes, teniendo en cuenta que esto puede estar relacionado con ficheros y bases de datos relacionales y no relacionales; así como, conocer casos de uso de las diferentes herramientas que proporciona el lenguaje para este fin.

Diseñado y producido por Smartmind

Disponibilidad:

Procesamiento y cierre

Contenidos

IFCD0183 — Persistencia y acceso a datos en Java

Módulo 1

Manejo de ficheros en Java

Objetivo. Comprender los conceptos básicos de Java y su ecosistema en el ámbito del manejo de ficheros de texto y binarios, y para implementar aplicaciones de uso de ficheros. Conocimientos / Capacidades cognitivas y prácticas

Contenidos: 1

Conocimiento/capacidades cognitivas y prácticas

Manejo de archivos con de texto

Introducción a los ficheros de texto

Conocimiento de las herramientas que proporciona Java para manejo de ficheros de texto

Manejo de archivos binarios

Introducción a los ficheros de texto

Clasificación de los ficheros binarios y diferencias

Conocimiento de las herramientas que proporciona Java para manejo de ficheros de binarios

Conocimiento sobre Clases Java para manejo de ficheros:

Uso de clases para ficheros de texto: File, FileReader, BufferedReader, FileWriter, PrintWriter, Files, Path...etc

Uso de clases para ficheros binarios: FileInputStream, DataInputStream, FileOutputStream, DataOutputStream...etc

Realización de operaciones con ficheros

Implementación de lectura de ficheros

Implementación de escritura de ficheros

Implementación de actualización de ficheros

Manejo de excepciones

Serialización y deserialización de objetos:

Definición y propósito

Uso de la interfaz Serializable

Definición y uso de un serialVersionUID

Uso de campos transient

Uso de clases para este propósito: ObjectOutputStream ObjectInputStream

Manejo de excepciones

Consideraciones acerca de la seguridad e implementaciones relacionadas

Implementación de la serialización y deserialización siguendo un orden

Módulo 2

Acceso e interacción con Bases de Datos

Objetivo. Comprender los conceptos básicos de Java y su ecosistema en el ámbito del manejo de bases de datos relacionales y no relacionales sin uso de ORM, y para implementar aplicaciones capaces de realizar las operaciones CRUD en estas bases de datos. Conocimientos / Capacidades cognitivas y prácticas

Contenidos: 1

Conocimiento/capacidades cognitivas y prácticas

Adquisición de los fundamentos sobre acceso a datos con Java

Importancia del acceso a datos en aplicaciones

Introducción a los tipos de bases de datos: relacionales vs. no relacionales

Introducción a SQL y NoSQL

Conocimiento de librerías y APIs en Java

Identificación de procedimientos en Java para el acceso a datos

Repaso de clases y objetos

Manejo de excepciones

Uso de interfaces y clases abstractas

Serialización y deserialización

Conocimiento de las bases de datos relacionales y JDBC

Introducción a JDBC (Java Database Connectivity)

Conocimientos sobre arquitectura y componentes de JDBC

Conexión a bases de datos (por ejemplo: MySQL, PostgreSQL)

Ejecución de consultas SQL: SELECT, INSERT, UPDATE, DELETE

Uso de PreparedStatement y CallableStatement

Manejo de resultados: ResultSet

Implementación de transacciones y control de errores

Implementación de CRUD básico

Acceso a datos avanzado con JDBC

Manejo de metadatos

Implementaciones batch updates

Uso de pool de conexiones

Codificación con buenas prácticas y optimización

Conocimiento de los fundamentos de bases de datos no relacionales (NoSQL)

Conocimiento de conceptos básicos de NoSQL

Diferenciación de tipos de bases de datos NoSQL: documentos, clave-valor, columnar, grafos

Introducción a MongoDB (ejemplo de base de datos de documentos)

Acceso a MongoDB con el driver oficial de Java

Implementación de operaciones CRUD con MongoDB

Codificación de inserción, consulta, actualización y borrado de documentos

Integración de Java con otras bases de datos NoSQL

Conocimiento de casos de uso y ejemplos básicos

Introducción Bases de datos clave-valor

Implentaciones de operaciones en Bases de datos clave-valor

Introducción e implementaciones usando bases de datos columnares o basadas en grafos

Módulo 3

Implementación y uso de Hibernate en Java

Objetivo. Adquirir conocimientos para comprender los conceptos básicos de Java y su ecosistema en el ámbito del manejo de bases de datos relacionales y no relacionales usando Hibernate como ORM, y para implementar aplicaciones capaces de realizar las operaciones CRUD en estas bases de datos usando Hibernate. Conocimientos / Capacidades cognitivas y prácticas

Contenidos: 1

Conocimiento/capacidades cognitivas y prácticas

Adquisición de conceptos básicos sobre los ORMs y JPA

Conocimiento acerca de qué es un ORM

Conocimiento de ventajas y desventajas de los ORMs

Introducción a JPA (Java Persistence API)

Relación entre JPA, Hibernate y otros ORMS

Utilización de Hibernate para bases de datos relacionales

Configuración de Hibernate: hibernate.cfg.xml y anotaciones

Mapeo de entidades: @Entity, @Id, @Column, etc.

Conocimiento de los tipos de relaciones entre entidades: @OneToOne, @OneToMany, @ManyToOne, @ManyToMany

Conocimiento del ciclo de vida de una entidad

Implementación de consultas: HQL (Hibernate Query Language) y Criteria API

Implementación de transacciones y gestión de sesiones

Implementación de CRUD con Hibernate

Identificación de las aplicaciones de Hibernate OGM para NoSQL (MongoDB)

Conocimiento acerca de qué es Hibernate OGM

Diferencias entre Hibernate ORM y OGM

Configuración de Hibernate OGM con MongoDB

Dependencias Maven/Gradle

Persistence.xml para OGM

Mapeo de entidades y documentos

Consultas JPQL y Native Queries

CRUD con Hibernate OGM y MongoDB

Evaluación de alternativas y buenas prácticas

Comparativa de ORMs y acceso directo

Implementación usando buenas prácticas en el uso de ORMS

Conocimiento de las ventajas y desventajas de usar ORMs con NoSQL

Conocimiento de casos de uso recomendados para ORMs y acceso directo

Consideraciones de cuidado medioambiental en el almacenamiento de datos: evitar redundancia, elección de almacenamiento en cuanto a tipo y ubicación...etc