Acceso a Bases de Datos en Java: JDBC, Hibernate y Mapeo Objeto-Relacional
Clasificado en Informática
Escrito el en
español con un tamaño de 8,46 KB
Conexión y consultas con JDBC
Rellena los huecos: "url", "user", "password", statement, executeQuery, close().
Método estático de conexión: public static Connection getConnection(String url, String user, String password) throws SQLException.
Código para consultar todos los alumnos: "SELECT * FROM alumnos" (consulta).
Definición de la URL de conexión a una base de datos mediante JDBC: "jdbc:mysql://<servername>:<port>/<databasename>".
Técnica de mapeo mediante anotaciones: las etiquetas se añaden a la clase y a los atributos para indicar su relación con la base de datos.
Fichero que contendrá todos los ficheros hbm.xml de cada clase Java y la conexión con la base de datos: hibernate.cfg.xml.
Archivo por cada clase Java y su relación con la base de datos: Mapping.hbm.xml.
Representación de un atributo en XML: name="hbm2ddl.auto".
Diferencia entre BDOR y BDOO: las bases de datos objeto-relacionales (BDOR) amplían el modelo relacional para incluir características de objetos, como la herencia y el encapsulamiento, mientras que las bases de datos orientadas a objetos (BDOO) se centran en almacenar objetos complejos, incluyendo sus componentes y métodos.
HQL que implementa Hibernate: FROM.
Un driver es el componente que permite a una aplicación comunicarse con un gestor de base de datos. Ejemplos: JDBC y ODBC.
Para utilizar la interfaz Connection, primero hay que cargar el driver mediante Class.forName.
Tras cargar el driver JDBC, lo siguiente que se debe hacer en una aplicación JDBC es crear el objeto Connection.
La interfaz ResultSet del conector JDBC contiene las filas resultantes de ejecutar una sentencia SELECT.
La interfaz Connection del conector JDBC representa una conexión con la base de datos.
Bases de datos, JDBC y transacciones
- BD embebidas: se incorporan dentro del software del programa por el desarrollador.
- Programación orientada a objetos (POO): paradigma de programación para desarrollar aplicaciones complejas.
- Desfase objeto-relacional: dificultad para desarrollar aplicaciones orientadas a objetos usando bases de datos relacionales.
- JDBC: permite conectar con la base de datos, realizar consultas, actualizar datos y recibir resultados. Permite realizar operaciones con lenguaje SQL independientemente de la instancia de la BD.
- PreparedStatement: operaciones SQL con parámetros dinámicos. Permite pasar parámetros a sus métodos y ejecutar la operación más de una vez.
- Statement: cualquier tipo de operación con la BD. Útil para SQL sin valores dinámicos.
- ResultSet: interfaz que devuelve la información en forma de tabla.
- CallableStatement: permite trabajar con procedimientos almacenados.
- Consulta estática: operación SQL que no varía en ningún momento.
- Sentencia de definición de datos (DDL): permite manipular la estructura de la base de datos.
- Procedimiento: subproceso o subprograma creado en la base de datos que se ejecuta cuando el usuario realiza su llamada.
- Transacciones: acciones que permiten controlar cuándo y cómo se aplican los cambios en la base de datos.
- setAutoCommit (modifica el modo de confirmación automática), commit (efectúa los cambios) y rollback (cancela los cambios).
- Savepoint: define un punto de rollback lógico en medio de una transacción.
Hibernate y mapeo objeto-relacional (ORM)
- Mapeo objeto-relacional (ORM): facilita la conversión de los datos de los objetos a los atributos de las tablas sin tener que realizar ninguna operación directa en la base de datos.
- Características del ORM: seguridad, agilidad y rapidez, abstracción, independencia y robustez.
- Hibernate: software libre que realiza el mapeo basado en XML, ayudando a convertir los datos de los objetos Java definidos en tablas y atributos correspondientes en la base de datos.
- Fichero pom.xml: contiene la información y estructura del proyecto. Es uno de los ficheros de configuración más importantes porque es la base del proyecto, al que se irán añadiendo elementos.
- hibernate.cfg.xml: fichero que contendrá todos los ficheros hbm.xml de cada clase Java y la conexión con la base de datos.
- Mapping.hbm.xml: archivo por cada clase Java y su relación con la base de datos. Es la traducción de Java y su correspondencia en la BD.
- Anotaciones: etiquetas que se añaden a la clase y a los atributos para indicar qué relación tienen con la base de datos.
- JPA (Java Persistence API): API de persistencia que describe la gestión de datos relacionales en Java y se desarrolla en la plataforma JavaEE.
- Clase persistente: clase Java que representa la entidad que queremos persistir en la base de datos.
- POJO: instancia de una clase que no extiende ni implementa ninguna interfaz especial.
- Sesiones: construcción de Hibernate que se utiliza para realizar la conexión con la base de datos. Se abre una única conexión que permanece abierta hasta su cierre. Permite crear, leer, actualizar y eliminar operaciones sobre distintos objetos y la información de la aplicación. La interfaz Session se caracteriza por su ligereza y está diseñada para instanciarse cada vez que interactúa con la base de datos. Debe mantenerse abierta solo el tiempo necesario.
- Persistente: objeto que alberga la información que representa un registro de la base de datos con identificador.
- Transitorio: instancia de una clase persistente que no está asociada a una sesión y no representa un registro de la base de datos. Su información existe solo en la sesión, no en la BD.
- Separado: instancia separada de una sesión que ya ha sido guardada en la base de datos.
- get(): devuelve la instancia de la entidad que le pasamos mediante una cadena (String) y un identificador, o null.
- CRUD: Create (crear), Read (leer), Update (actualizar), Delete (eliminar).
- HQL (Hibernate Query Language): lenguaje propio de Hibernate orientado a objetos, que consulta la base de datos mediante un lenguaje propio.
Modelos de bases de datos avanzados
- BDOR: evolución del modelo relacional hacia el orientado a objetos. Es una base de datos híbrida que combina dos tecnologías.
- BDOO: representa la información que se guarda mediante objetos.
- Herencia: relación entre un tipo de objeto más general y otro más específico.
- Polimorfismo: capacidad de los objetos de ofrecer respuestas diferentes e independientes.
- Encapsulación: ocultación de los datos de un objeto, de forma que solo se modifican mediante sus operaciones.
- Predicado: expresión SQL que se incluye entre cláusulas y nombres de campo.
- Triggers (disparadores): objetos de la base de datos que ejecutan acciones al producirse un evento.
- Lenguaje PL/SQL (Procedural Language Extension): lenguaje orientado a la base de datos basado en SQL que combina este lenguaje junto con características de los lenguajes de programación.
- BFILE: permite guardar grandes ficheros binarios fuera de la base de datos.
- BLOB: permite guardar datos binarios de gran tamaño dentro de la base de datos.
- Lenguaje de consultas para objetos (OQL): lenguaje inspirado en SQL que, en lugar de usar nombres de tablas, usa nombres de objetos.