Lala

Páginas: 15 (3739 palabras) Publicado: 14 de mayo de 2012
Acceso a BD desde Java

Seminario: Acceso a bases de datos desde Java
1.Persistencia de clases 2.Serialización 3.Java Database Connection (JDBC) 4.Data Access Objects (DAO) 5.Object-Relational Mapping (ORM) 6.Java Persistence API (JPA)

Acceso a BD desde Java

Acceso a bases de datos
● ● ●

Necesario en la mayoría de aplicaciones no triviales Normalmente no se contempla en el diseñoinicial

La implementación directa es una aplicación que trabaja íntegramente en memoria

Acceso a BD desde Java

Acceso a BD desde Java



Implementación de la clase Item:
package ventasbd; public class Item { int cantidad; String descripcion; float importeUnidad; public Item(int cantidad, String descripcion, float importeUnidad) { this.cantidad = cantidad; this.descripcion =descripcion; this.importeUnidad = importeUnidad; } public float importe() { return cantidad * importeUnidad; } }

Acceso a BD desde Java

Acceso a BD desde Java



Implementación de la clase Venta:
public float calcularImporte() { Iterator i = items.iterator(); float suma = 0; while (i.hasNext()) { suma += i.next().importe(); } return suma; } public float calcularIVA() { return 0.18f *calcularImporte(); } public float calcularTotal() { return 1.18f * calcularImporte(); } }

package ventasbd; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; public class Venta { int num; Date fecha; ArrayList items; public Venta(int num) { this.num = num; fecha = new Date(); items = new ArrayList(); } public void anadirItem(Item i) { items.add(i); }

Acceso a BD desde Java Acceso a BD desde Java



Implementación de la clase SistemaVentas
package ventasbd; import java.util.TreeMap; class ErrorCreacionVenta extends Exception {} public class SistemaVentas { TreeMap ventas; public SistemaVentas() { ventas = new TreeMap(); } public void nuevaVenta(Venta v) { ventas.put(v.num, v); } public Venta venta(int num) { return ventas.get(num); } }

Acceso a BD desdeJava

Acceso a BD desde Java



Implementación de la clase VentasBD:
package ventasbd; import import import import import java.sql.Connection; java.sql.DriverManager; java.sql.SQLException; java.sql.Statement; java.text.SimpleDateFormat;

public class VentasBD { public static void main(String[] args) { SistemaVentas sistemaVentas = new SistemaVentas(); Venta venta = new Venta(1);venta.anadirItem(new Item(4, "Barritas energéticas", 2.0f)); venta.anadirItem(new Item(1, "Aceite cadena", 8.0f)); venta.anadirItem(new Item(1, "Par de guantes", 15.0f)); System.out.println ("Factura " + Integer.toString(venta.num) + " importe: " + venta.calcularTotal()); sistemaVentas.nuevaVenta(venta); } }

Acceso a BD desde Java

Acceso a BD desde Java

Persistencia de clases
Normalmenteexistirán varias clases cuya información debe guardarse de manera persistente


Su información no debe perderse al cerrar la aplicación


Persistencia de clases

Acceso a BD desde Java

Solución mediante serialización
La serialización en un fichero es una solución sencilla para proporcionar persistencia pero tiene varios inconvenientes:



Puede que por su volumen no sea posiblemantener todos los objetos en memoria El tiempo de arranque de la aplicación puede ser largo Un fallo inesperado en la aplicación puede hacer perder información





Solución mediante serialización

Acceso a BD desde Java

Adaptación de las clases persistentes
Las clases persistentes deben cumplir en general varias condiciones:
● ●

Incluir un atributo que funcione como claveprimaria. Si no existe, se añade. Incluir observadores y modificadores para leer/escribir los atributos que van a ser guardados en la base de datos Muchas relaciones en memoria desaparecen y se sustituyen por relaciones entre tablas





Adaptación de las clases persistentes

Acceso a BD desde Java

Diagrama del ejemplo tras eliminar las relaciones y añadir observadores


Adaptación...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lalo
  • Lala
  • Lala
  • Lala
  • Lala
  • lala
  • lala
  • lala

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS