Persistencia en java
Rubén Inoto Soto
Universidad de Alicante – 12 de Mayo, 2006
Persistencia
Del lat. persistere Durar por largo tiempo Almacenamiento de lainformación después de la finalización del programa La mayoría de los programas actuales necesitan preservar los datos para posterior uso El sistema más común se basa en bases de datos relacionalesProblema
Mapeo de Objetos (estrucutra jerárquica) a Base de Datos Relacional (estructura tabular) y viceversa
Problema Cont.
•Asociaciones •Herencia •Polimorfismo •Cascada •Cache •LazyLoading •Paginación •...
JDBC - Características
Interfaz de programación para acceso a BD Rutinas para manipular los datos y metadatos Acceso „directo“ a la base de datos Control delas conexiones y transacciones (autoCommit) Lenguaje SQL
JDBC – Ejemplo 1
Cargar el Driver y Obtener Conexión a BD
Class.forName("com.mysql.jdbc.Driver"); Connection con =DriverManager.getConnection("jdbc:mysql://localhost:3306/persistenceTest", "root", „xxx");
Transacciones y Sesiones
con.setA utoCommit(false); // Codigo... con.commit(); Código poco intuitivo
EjecutarQuery
Acceso directo a SQ L
Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT NAME as name, EMAIL as email " + "FROM UA_USER where ID = " + 1); User user = newUser(); if ( rs.next() ) { user.setName(rs.getString("name")); user.setEmail(rs.getString("email")); } Mapping Manual rs.close(); stmt.close();
JDBC – Ejemplo 1. Cont
PreparedStatementPreparedStatement createUserStmt = con.prepareStatement("INSERT INTO UA _USER (NA ME, EMA IL) VA LUES (?, ?)"); createUserStmt.setString(1, "ruben"); createUserStmt.setString(2, "ruben@ruben.com");createUserStmt.execute();
Cerrar conexiones
con.close();
JDBC - Problemas
Código específico de Base de Datos
• mySQL: outer join, autoincrement • Oracle (+), Sequences
...
Regístrate para leer el documento completo.