Conectores DB y Herramientas ORM

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 5,55 KB

Conectores DB

Modelo relacional vs Modelo Objeto

Modelo relacional:

Todos los datos son representados en tuplas, agrupados en relaciones.

Modelo objeto:

Todos los datos son representados en objetos, que tienen atributos y métodos.

Brecha Objeto-Relacional

Estas propiedades nos fuerza a usar código extra cuando se quiere trabajar con estos dos paradigmas.

Objeto->Relacional  Clases->Tablas  Atributos->Columnas  Objetos-> Filas

Conector de BD

Es aquello que utiliza la BD servidor y el SW cliente para comunicarse entre ellos.

Conectores más conocidos:

Open Database Connectivity (ODBC):

Es una API para acceder a SGBD. La aplicación usa funciones ODBC a través de un ODBC driver el cual esta unido, el driver pasa la consulta al SGDB.

Java Database Connectivity (JDBC):

Es una API para utilizar en Java la cual define como un cliente se debe conectar a la BD.

JDBC Clases

Connection: representa una conexión a una BD especifica.

Statement: ejecuta una sentencia SQL y obtiene su resultado.

ResultSet: da acceso a la tabla que se ha generado al ejecutar la consulta SQL.

PreparedStatement: ejecuta sentencias SQL compiladas.

CallableStatement: ejecuta stored procedures SQL.

JDBC Pasos

Asigna un objeto Connection para conectarse al BD server.

Asigna un objeto Statement, bajo el objeto Connection creado, para almacenar un comando SQL.

Escribe una consulta SQL y ejecuta la consulta.

Procesa el resultado de la consulta.

Cierra los objetos Statement y Connection para liberar recursos

Metodos más usados en JDBC


Gestión de transacciones en JDBC

Transacción: representa una unidad de trabajo.

ACID (Atomicity, Consistency, Isolation, Durability): conjunto de propiedades de las transacciones de BD para garantizar la validez incluso en errores, fallos energéticos, etc.

Atomicity: todo el éxito o ninguno.

Consistency: asegura llevar de la BD de un estado consistente a otro estado consistente.

Isolation: asegura que una transacción está aislada de otra.

Durability: significa que se ha cometido una transacción incluso en errores.

La interfaz Connection provee de métodos para gestionar las transacciones:

Commit():comete la transacción.

Rollback(): cancela la transacción.

SetAutoCommit(boolean): Si el booleano esta a True, quiere decir que las transacciones se cometerán por defecto.

HERRAMIENTAS ORM

ORM: MAPEO RELACIONAL DE OBJETOS

El mapeo relacional de objetos (ORM): es una técnica de programación para convertir datos entre sistemas, de tipos incompatibles, utilizando lenguajes de POO.

ORM es una combinación del Modelo Relacional y el Modelo Orientado a Objetos.

HERRAMIENTAS DE ORM

Las herramientas de ORM nos permiten acceder a bases de datos relacionales desde lenguajes orientados a objetos.

MyBatis: es un framework de persistencia de Java que combina objetos con sentencias SQL utilizando un descriptor XML o anotaciones.

Hibernate: lenguaje inspirado en SQL llamado Hibernate Query Language (HQL) que permite que se escriban consultas similares a SQL para los objetos de datos de Hibernate.


Ejemplo de myBatis

Como obtener el nombre del cliente usando ORM:

ClientMapper mapper = session.getMapper(ClientMapper.class);

Client client= mapper.selectClient(3);

System.out.println("Nombre"+ client.getName())

MyBatis: ANOTACIONES

Una anotación: Forma de metadatos sintácticos que se puede agregar al código fuente de Java.

Las anotaciones de MyBatis se declaran en la interfaz de métodos para seleccionar, insertar, actualizar y eliminar operaciones.

Public interface ClientMapper{

@Select("SELECT * FroM clients WHERE id=#{id}" )

Client selectClient(int id);

}

VENTAJAS DE ORM TAMBIEN SON:

Automatiza la conversión de objeto a tabla y de tabla a objeto, lo que resulta menores costos de desarrollo y mantenimiento.

Menos código en comparación con SQL incorporado y procedimientos almacenados escritos a mano.

Almacenamiento en caché de objetos transparente en el nivel de aplicación, lo que mejora el rendimiento del sistema. Una solución optimizada que hace que una aplicación sea más rápida y fácil de mantener.

Entradas relacionadas: