La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM

Presentaciones similares


Presentación del tema: "Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM"— Transcripción de la presentación:

1 Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM 1

2 Contenido Introducción – Cómo funciona JDBC – Propuestas de Solución – Qué es el Mapeo Objeto-Relacional? Qué es iBATIS? – Características de iBATIS – Pros y Contras – Cómo funciona iBATIS – Arquitectura de iBATIS – Extraer e Insertar Datos – Borrar y Actualizar Caso de Éxito – RegulonDB 2

3 Introducción 3

4 Cómo funciona JDBC 4 Solicitud SQL Comunicación Viva con la Base de Datos mientra sacamos los datos

5 5 Manipulación del SQL hay que concatenar cada línea

6 6

7 Propuestas de Solución 1.Hibernate 2.Java Persistence API 3.iBATIS 7

8 Qué es el Mapeo Objeto-Relacional? 88 Solicitud de SQL SQL

9 Qué es iBATIS? iBATIS es un framework mapeador de datos que se encuentran contenidos en base de datos y obtener objetos a partir de los datos relacionales. Fue desarrollado por Clinton Begin y el código fuente es administrado por la Apache Software Fundation (http://ibatis.apache.org/). 9

10 Características de iBATIS 1.Mapeo basado en SQL. 2.Trabaja con esquemas de base de datos sencillos y complejos. 3.Construcción de SQL dinámico o al vuelo apartar de etiquetas de XML. 4.Soporte de transacciones. 5.Minima dependencia de librerías de terceros y bajo consumo de recursos. 6.Intregación con otros frameworks (Spring). 10

11 Pros y Contras Pros 1.Se puede utilizar cualquier tipo de sentencia SQL: UNION, OUTER JOIN. 2.Independencia de la base de datos. 3.Reusabilidad de sentencias SQL y objetos de resultados. 4.Mayor flexibilidad en la manipulación de SQL. Contras 1.Tiempo en modelado de los objetos que contendrán los resultados de SQL. 2.Tiempo en configurar el ambiente para usar iBATIS. 11

12 Cómo funciona iBATIS 12 Solicitud de ID de SQL Solicitud SQL

13 Arquitectura de iBATIS 13 sql-map-config.xml sql-map.xml Objeto.java ibatis.jarlog4j.jar commons-dbcp.jar Ibatis.java

14 Esquema de Base de Datos (tienda) 14

15 sql-map-config.xml 15

16 sql-map.xml SELECT DISTINCT id_cliente AS id, nombre_cliente AS cliente, direccion_cliente AS direccion FROM nombre_cliente = #nombreCliente# 16

17 SELECT DISTINCT id_cliente AS id, nombre_cliente AS cliente, direccion_cliente AS">

18 Ibatis.java private static SqlMapClient sqlMap; static { try { String resource = "ibatis/sql-map-config.xml"; Reader reader = Resources.getResourceAsReader(resource); sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader); } catch(Exception e) { e.printStackTrace(); } public static SqlMapClient getSqlMapInstance() { return sqlMap; } 18

19 19 Como Queda Organizado

20 Extraer Datos 1.Instanciamos la clase Ibatis que generamos. // conexión de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); 2.Se solicita que ejecute un identificador de un query, pero … 20

21 Cliente cliente = sqlMap.queryForObject("busca_cliente_nombre", luis); Resultado de SQL

22 22 List clienteList = sqlMap.queryForList("busca_cliente_nombre", luis); Resultado de SQL

23 if(!(clienteList.isEmpty())) { for(int x = 0; x < facturaList.size(); x++ ) { Cliente cliente = (Cliente)clienteList.get(x); System.out.println( cliente.getId() + + cliente.getCliente() + + cliente.getDireccion() ); } // fin for 23

24 Ejemplo Extracción de datos 24

25 25 INSERT INTO CLIENTE(id_cliente, nombre_cliente, direccion_cliente) VALUES( #id:Integer#, #cliente:String#, #direccion:String#) Insertar Datos

26 26 Cliente cliente = new Cliente(); cliente.setCliente(luis); cliente.setDireccion(dirección conocida); cliente.setId(14); // conexión de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.insert("insera_cliente", cliente);

27 Ejemplo de Inserción de Datos 27

28 Borrar 28 DELETE FROM CLIENTE WHERE id_cliente = #id# // Java // conexión de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.delete("borrar_cliente, 14);

29 Ejemplo de Borrado de Datos 29

30 Actualizar 30 UPDATE CLIENTE SET nombre_cliente = #cliente#, direccion_cliente = #direccion# WHERE id_cliente = #id# // java Cliente cliente = new Cliente(); cliente.setCliente(luis josé); cliente.setDireccion(av. Central # 1, zacatepec morelos); cliente.setId(14); // conexion a RegulonDB a travez de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.update("actualiza_cliente", cliente);

31 Ejemplo de Actualización de Datos 31

32 Caso de Éxito: RegulonDB, es una base de datos sobre el proceso de transcripción de la bacteria E. coli. (http://regulondb.ccg.unam.mx/) 1.Las herramientas de RegulonDB estaban muy individualizadas. 2.Colocar un sitio espejo en Purdue University (EcoliHub, 32

33 33 Las herramientas de RegulonDB estaban muy individualizadas.

34 34

35 Colocar un sitio espejo en Purdue University (EcoliHub). 35

36 36

37 Gracias 37


Descargar ppt "Esquema de Mapeo de Base de Datos Relacionales a Objetos Luis José Muñiz Rascado Programa de Genómica Computacional Centro de Ciencias Genómicas UNAM"

Presentaciones similares


Anuncios Google