Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porDeifilia Carranco Modificado hace 10 años
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
2
Contenido Qué es iBATIS? Propuestas de Solución
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
3
Introducción
4
Cómo funciona JDBC Comunicación Viva con la Base de Datos mientra
Solicitud SQL Comunicación Viva con la Base de Datos mientra sacamos los datos
5
Manipulación del SQL hay que concatenar cada línea
7
Propuestas de Solución
Hibernate Java Persistence API iBATIS
8
Qué es el Mapeo Objeto-Relacional?
Solicitud de SQL SQL 8
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 (
10
Características de iBATIS
Mapeo basado en SQL. Trabaja con esquemas de base de datos sencillos y complejos . Construcción de SQL dinámico o al vuelo apartar de etiquetas de XML. Soporte de transacciones. Minima dependencia de librerías de terceros y bajo consumo de recursos. Intregación con otros frameworks (Spring).
11
Pros y Contras Pros Contras
Se puede utilizar cualquier tipo de sentencia SQL: UNION, OUTER JOIN. Independencia de la base de datos. Reusabilidad de sentencias SQL y objetos de resultados. Mayor flexibilidad en la manipulación de SQL. Contras Tiempo en modelado de los objetos que contendrán los resultados de SQL. Tiempo en configurar el ambiente para usar iBATIS.
12
Cómo funciona iBATIS Solicitud de ID de SQL Solicitud SQL
13
Arquitectura de iBATIS
Ibatis.java log4j.jar sql-map.xml ibatis.jar sql-map-config.xml Objeto.java commons-dbcp.jar
14
Esquema de Base de Datos (tienda)
15
sql-map-config.xml <sqlMapConfig> <transactionManager type="JDBC”> <dataSource type="SIMPLE"> <property name="JDBC.Driver" value="org.apache.derby.jdbc.EmbeddedDriver"/> <property name="JDBC.ConnectionURL" value="jdbc:derby:/Users/luisjose/tienda"/> <property name="JDBC.Username" value=”usuario"/> <property name="JDBC.Password" value=”usuario"/> </dataSource> </transactionManager> <!-- SqlMaps --> <sqlMap resource=”ibatis.xml.SqlMap.xml" /> </sqlMapConfig>
16
sql-map.xml <sqlMap namespace="SqlMap"> <!– SQL que busca los datos de un cliente --> <select id="busca_cliente_nombre" resultClass="ibatis.maps.Factura"> SELECT DISTINCT id_cliente AS id, nombre_cliente AS cliente, direccion_cliente AS direccion FROM nombre_cliente = #nombreCliente# </select> </sqlMap>
17
Cliente.java y SQL <sqlMap namespace="SqlMap">
<!– SQL que busca los datos de un cliente --> <select id="busca_cliente_nombre" resultClass="ibatis.maps.Factura"> SELECT DISTINCT id_cliente AS id, nombre_cliente AS cliente, direccion_cliente AS direccion FROM nombre_cliente = #nombreCliente# </select> </sqlMap>
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;
19
Como Queda Organizado
20
Instanciamos la clase Ibatis que generamos.
Extraer Datos Instanciamos la clase Ibatis que generamos. // conexión de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); Se solicita que ejecute un identificador de un query , pero…
21
Resultado de SQL Cliente cliente = sqlMap.queryForObject("busca_cliente_nombre", “luis”);
22
sqlMap.queryForList("busca_cliente_nombre", “luis”);
Resultado de SQL List clienteList = sqlMap.queryForList("busca_cliente_nombre", “luis”); 22
23
if(. (clienteList. isEmpty())) { for(int x = 0; x < facturaList
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
24
Ejemplo Extracción de datos
25
Insertar Datos <!– SQL que inserta cliente -->
<insert id="insera_cliente" > INSERT INTO CLIENTE(id_cliente, nombre_cliente, direccion_cliente) VALUES( #id:Integer#, #cliente:String#, #direccion:String#) </insert>
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
28
Borrar <!– SqlMap --> <!– SQL que borra un usuario -->
<delete id="borrar_cliente"> DELETE FROM CLIENTE WHERE id_cliente = #id# </delete> // Java // conexión de iBATIS SqlMapClient sqlMap = Ibatis.getSqlMapInstance(); sqlMap.delete("borrar_cliente”, 14);
29
Ejemplo de Borrado de Datos
30
Actualizar <!– SqlMap <!– SQL que actualiza -->
<update id="actualiza_cliente"> UPDATE CLIENTE SET nombre_cliente = #cliente#, direccion_cliente = #direccion# WHERE id_cliente = #id# </update> // 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
32
Caso de Éxito: RegulonDB, es una base de datos sobre el proceso de transcripción de la bacteria E. coli. ( Las herramientas de RegulonDB estaban muy individualizadas. Colocar un sitio espejo en Purdue University (EcoliHub,
33
Las herramientas de RegulonDB estaban muy individualizadas.
35
Colocar un sitio espejo en Purdue University (EcoliHub).
37
Gracias
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.