Está en la página 1de 111

AGENDA:

Presentacin.
1. Entrada/Salida
1.1. I/O Streams
1.1.1. Byte / Characters / Buffered / Data / Object (Streams)
1.1.6. Escaneo y Formateo
1.2. Archivos
1.2.1. Manejando Directorios
1.2.2. Manejando Archivos
1.2.3. Manejo de archivos XML
2

AGENDA:
2. Concurrencia
2.1. Procesos e Hilos
2.2. Hilos
2.3. Sincronizacin
3. Expresiones Regulares
3.1. Introduccin
3.2. Metacaracteres
3.3. Cuantificadores
3.4. Patrones
3

AGENDA:
4. Interfaces Grficas Usuario (Formularios)
4.1. Introduccin Swing, AWT
4.2. Componentes SWING
4.2.1. Manejo de Contenedores
4.2.2. Manejo de los componentes Label, TextField, TextArea,
Button, Checkbox, RadioButtons, Combobox, List, EditorPane,
TextPane, Table y Menu.
4.3. Posicionamiento de Componentes (Layout)
4.4. Manejo de Eventos Mediante Interfaces
4

AGENDA:
5. Manejo de Base de Datos
5.1 JDBC
5.2 Sentencias SQL
6. Networking
6. 1 TCP/UDP
6.2 Sockets, URL
5

Entrada / Salida
I/O Streams.
La mayora de los programas acceden a datos externos y estos datos
se recuperan a partir de un origen de entrada y se guardan a travs
de un destino de salida. Java llama flujo (Stream) a esta abstraccin
y la implementa con clases del paquete java.io
Un programa usa un input stream para leer datos desde una fuente,
un item a la vez.
Un programa usa un output stream para escribir datos a una fuente,
un item a la vez.

Archivos
La forma de interactuar con los sistemas de archivos locales

se realiza a travs de la clase File, esta clase proporciona


muchas utilidades relacionadas con archivos y con la
obtencin de informacin bsica sobre esos archivos.

La clase File
La clase File tiene tres versiones de constructores. Estos son:
File(String path);
File(String path, String name)
File(File dir, String name);

Los tres son muy similares y realizan la misma funcin. El primer


constructor que toma un String recibe el nombre de un archivo,
incluyendo su ruta, en forma de cadena. El segundo toma por separado
la ruta y el nombre del archivo y el tercer constructor es casi igual al
primero excepto que el primer parmetro que indica el directorio del
archivo es del tipo File en lugar del tipo String.

Mtodos clase File


Algunos mtodos de la clase File son los siguientes:

Listar los ficheros de un directorio

10

Ficheros binarios / Fichero de texto

11

API: java.io

12

FileInputStream / FileOutputStream
package com.flujo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

13

public class CopiaBytes {


public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("neruda.txt"); //entrada
out = new FileOutputStream("copia_neruda.txt"); //salida
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}

Los Buffered*
Si usamos slo FileInputStream, FileOuputStream, FileReader o

FileWriter, cada vez que hagamos una lectura o escritura, se har


fsicamente en el disco duro. Si escribimos o leemos pocos caracteres
cada vez, el proceso se hace costoso y lento, con muchos accesos a disco
duro.
Los BufferedReader, BufferedInputStream, BufferedWriter y
BufferedOutputStream aaden un buffer intermedio. Cuando
leamos o escribamos, esta clase controlar los accesos a disco.
Esta forma de trabajar hace los accesos a disco ms eficientes y el
programa correr ms rpido. La diferencia se notar ms cuanto mayor
sea el fichero que queremos leer o escribir.

14

Escritura y Lectura de Archivos

Rene Segovia Q.

15

Lectura byte por byte

16

DataOutputStream / DataInputStream
Los objetos DataInputStream se comportan como

los FileInputStream. Los streams de datos pueden


leer cualquiera de las variables de tipo nativo,
como floats, ints o chars. Generalmente se
utilizan DataInputStream con archivos binarios.

17

Escaneo y Formateo
El programar con I/O a menudo involucra trasladar la
informacin a y desde un formato especifico.
Para esto en java se cuenta con dos APIS:
Scanner API, que rompe la entrada a tokens
individuales de datos.
Formating API que transforma la informacin a un
formato especifico.

18

La clase scanner
La clase Scanner que se introdujo a partir de java 5 tiene varias

utilidades. Puede separar o romper su dato de entrada en


subcadenas o tokens y adems convertir estos datos en tipos
primitivos como enteros, flotantes, etc.

19

La clase PrintWriter
La clase PrintWriter desde la versin de java 1.5 recibe en su
constructor objetos de tipo File, permitiendo que se puedan escribir
datos formateados a los archivos directamente.

20

Resumen mtodos para manejo de


archivos
Clase
File

Constructores
File(String s)

Mtodos
createNewFile()
renameTo(File f)

FileReader

FileReader(String s)
FileReader(File f)

BufferedReader

BufferedWriter

21

IOException
FileNotFoundException

read()
close()
FileWriter

Excepciones

FileWriter(String s)
FileWriter (File f)

IOException
FileNotFoundExcetion

write()
flush()
close()

IOExceptoin

readLine()
close()

IOException

write()
newLine()
close()

IOException

BufferedReader(FileReader fr)

BufferedWriter(FileWriter w)

Serializacion (Object Stream)


La serializacin (o marshalling en ingls) consiste en un proceso de

codificacin de un Objeto (programacin orientada a objetos) en un


medio de almacenamiento (como puede ser un archivo, o un buffer de
memoria) con el fin de transmitirlo a travs de una conexin en red
como una serie de bytes o en un formato humanamente ms legible.
La serializacin es un mecanismo ampliamente usado para transportar

objetos a travs de una red, para hacer persistente un objeto en un


archivo o base de datos, o para distribuir objetos idnticos a varias
aplicaciones o localizaciones.

22

Serializacion
Para que un programa pueda convertir un objeto en un

montn de bytes y pueda luego recuperarlo, el objeto necesita


ser Serializable. Al poder convertir el objeto a bytes, ese
objeto se puede enviar a travs de red, guardarlo en un
fichero, y despus reconstruirlo al otra lado de la red, leerlo
del fichero.
Para que un objeto sea serializable basta con que implemente
la interfaz Serializable.

23

Serializacion

24

Manejo de archivos XML


JAXP - Java API for XML Processing.
JAXP es el API que provee Java para el procesamiento de
archivos XML.
Contiene tres interfaces de parseo bsico:
DOM (Document Object Model)
SAX (Simple API for XML )
StAX (Streaming API for XML)

25

Manejo de archivos XML


DOM (Document Object Model)
Todo el documento es ledo en memoria como una estructura de

rbol para acceso aleatorio por la aplicacin llamante.


SAX (Simple API for XML )
Basadas en eventos, la aplicacin se registra para recibir eventos

segn las entidades se encuentran en el documento de origen.


StAX (Streaming API for XML)
Es un trmino medio entre DOM y SAX.

26

Manejo de archivos XML


XPath (XML Path Language)
Es un lenguaje que permite construir expresiones que recorren y

procesan un documento XML.


XPath permite buscar y seleccionar teniendo en cuenta la
estructura jerrquica del XML. XPath fue creado para su uso en el
estndar XSLT, en el que se usa para seleccionar y examinar la
estructura del documento de entrada de la transformacin.
Se puede decir que Xpath es una especie de SQL para archivos
XML.

27

XPath
Selecionando Nodos.
Xpath usa path expressions, para seleccionar Nodos en un
documento XML. Siendo las siguientes las ms comunes:

28

XPath - Ejemplo

29

XPath
Predicados.
Son usados para encontrar un nodo especfico o un nodo con un valor

especfico. Se los incluye en corchetes.

30

XPath
Seleccionado nodos desconocidos.
XPath wildcards pueden ser usados para seleccionar elementos XML

desconocidos.

Del ejemplo se tendra:

31

Ejercicios con XML


***** CREAR XML ******

Document document = DocumentHelper.createDocument();


Element root = document.addElement( "root" );
Element author1 = root.addElement( "author" ).addAttribute( "name", "James" )
.addAttribute( "location", "UK" ).addText( "James Strachan" );
Element author2 = root.addElement( "author" ).addAttribute( "name", "Bob" )
.addAttribute( "location", "US" ).addText( "Bob McWhirter" );
****** PARA PASAR A STRING **********

public static String documentToString(Document doc) throws Exception{


OutputFormat outFormat = new OutputFormat();
outFormat.setEncoding("ISO-8859-1");
StringWriter writer = new StringWriter();
XMLWriter out = new XMLWriter(writer, outFormat);
out.write(doc);
return writer.toString();}
32

Ejercicios con XML


***** PARA CARGAR DE STRING ***********

String text = "<person> <name>James</name> </person>";


Document document = DocumentHelper.parseText(text);

***** PARA NAVEGAR EL XML ***********

List list = document.selectNodes( "//root/author" );


Node node = document.selectSingleNode( "//foo/bar/author" );
String name = node.valueOf( "@name" );

33

Concurrencia
Existen muchos casos en los que es deseable dividir las tareas de una

aplicacin haciendo posible que algunas de ellas se ejecuten


concurrentemente. Ello puede contribuir decisivamente en el
rendimiento, especialmente si se trabaja en entornos con varios
procesadores o si se desarrollan aplicaciones distribuidas, como por
ejemplo las aplicaciones web.
Java dispone de un mecanismo de hilos de proceso que permite crear
este tipo de aplicaciones de una forma considerablemente fcil. Gran
parte de los estndares de la plataforma Java emplean hilos de proceso
de manera implcita, es decir, sin que el programador tenga que ser
consciente de ello.
34

Threads (Hilos).
Thread: Es la clase que encapsula todo el control necesario sobre los

hilos de ejecucin (threads) en java.


Existen diversos tipos de constructores a partir de los cuales se puede

crear un hilo, algunos de los ms importantes son:


o Thread()
o Thread(objetoRunnable)
o Thread(objetoRunnable, String nombre)
o Thread(String nombre)

35

Threads (Hilos).
Existen diversos tipos de constructores a partir de los cuales

se puede crear un hilo, algunos de los ms importantes son:


+ Thread()
+ Thread(objetoRunnable)
+ Thread(objetoRunnable, String nombre)
+ Thread(String nombre)

36

Mtodos de Clase
Estos son los mtodos estticos que deben llamarse de

manera directa en la clase Thread.

37

Mtodos de Instancia

38

Creacin de un hilo
Hay dos modos de conseguir hilos de ejecucin (threads) en

Java. Una es implementando el interfaz Runnable, la otra es


extender la clase Thread.

39

Ejemplo hilos

40

Prioridades en los hilos


Se dispone de un mecanismo de prioridades para los threads, de modo

de poder asignar ms tiempo de CPU a un thread que a otro.

41

Estados de un Thread

42

Comunicacin entre Threads


Pepito

Pepito inicia
su da

Pepito se va
a la casa
43

Comunicacin entre Threads

Mara

Mara inicia
su da

Mara en
clases
Mara sale de
clases

44

Mara se va a
la casa

Comunicacin entre Threads


Mara

Pepito

Mara inicia
su da

Pepito inicia
su da

Mara en
clases

Mara sale de
clases

45

Pepito se va
a la casa

Mara se va a
la casa

Comunicacin
entre
Threads
Mara
Pepito
Mara inicia
su da

Pepito inicia
su da

Pepito
espera a
Mara

Mara en
clases
Mara sale de
clases

46

Pepito se va
a la casa

Mara se va a
la casa

Comunicacin
entre
Threads
Pepito
Pepito inicia
su da

Pepito
espera a
Mara

47

Pepito se va
a la casa

Comunicacin
entre
Threads
Pepito
Pepito inicia
su da

Pepito
espera a
Mara

48

Pepito se va
a la casa

Comunicacin entre Threads

Pepito

Pepito inicia
su da

Pepito
espera a
Mara

49

Pepito se va
a la casa

Comunicacin entre Threads


Mara

Mara inicia
su da

Mara en
clases

Mara enva
mensaje

Mara sale de
clases

50

Mara se va a
la casa

Comunicacin entre
Threads
Mara

Mara inicia
su da

Mara en
clases

Mara enva
mensaje
Mara sale de
clases

51

Mara se va a
la casa

Comunicacin
entre
Threads
Mara

Pepito

El Otro

Pepito inicia
su da

Mara inicia
su da

Mara en clases

Pepito
espera a
Mara
Mara enva
mensaje

52

Pepito se va
a la casa

El otro inicia
su da

Mara sale de
clases

Mara se va a
la casa

El otro
espera a
Mara

El otro se va
a la casa

Comunicacin entre Threads

Pepito

Mara

El Otro
El otro inicia
su da

Pepito inicia
su da

Pepito
espera a
Mara

53

Mara inicia
su da
Mara en clases

Mara enva
mensaje

Pepito se va
a la casa

El otro espera a
Mara

Mara sale de
clases

Mara se va a
la casa

El otro espera a
Mara

El otro se va
a la casa

Comunicacin
entre
Threads
El Otro
El otro inicia
su da

El otro espera a
Mara

54

El otro se va
a la casa

Comunicacin entre Threads

Pepito

Pepito inicia
su da

Pepito
espera a
Mara

55

Pepito se va
a la casa

Expresiones Regulares
3.1. Introduccin
3.2. Metacaracteres
3.3. Cuantificadores
3.4. Patrones

56

Expresiones Regulares
Las expresiones regulares son una manera de describir un

conjunto de strings basados en caractersticas comunes


compartidas por cada string en el conjunto.

Ellas pueden ser usadas para buscar, editar o manipular texto e

informacin.

Java provee el API: java.util.regrex para trabajar con expresiones

regulares.

.
57

Paquete: java.util.regex
El paquete java.util.regex esta formado por dos clases, la clase Matcher

y la clase Pattern y por una excepcin, PatternSyntaxException.


La clase Pattern es la representacin compilada de una expresin
regular, o lo que es lo mismo, representa a la expresin regular, que en
el paquete java.util.regex necesita estar compilada. En castellano
significa patrn.
La clase Matcher es un tipo de objeto que se crea a partir de un patrn
mediante la invocacin del mtodo Pattern.matcher. Este objeto es el
que nos permite realizar operaciones sobre la secuencia de caracteres
que queremos validar o la en la secuencia de caracteres en la que
queremos buscar.

58

Ejemplo

59

Uso de la expresiones regulares


Una expresin regular, nos servir para buscar patrones en

una cadena de texto, por ejemplo encontrar cuantas veces se


repite una palabra en un texto, para comprobar que una
cadena tiene una determinada estructura, por ejemplo que el
nombre de archivo que nos proponen tiene una determinada
extensin, o comprobar que un email esta bien escrito... Para
cada uno de estos casos existe una expresin regular que los
representa.

60

Metacaracteres
El API tambin soporta un nmero de caracteres especiales

(Metacaracteres) que afectan la manera en la que un patrn


es aplicado (matched).

61

Metacaracteres
La siguiente tabla muestra algunos metacaracteres:

62

Metacaracteres
El API Pattern contiene un nmero de metaracteres

predefinidos los cuales ofrecen una forma abreviada de


representar las expresiones regulares comunes:

63

Cuantificadores
Los Cuantificadores permiten especificar el nmero de

ocurrencias contra las que se machea.

64

Cuantificadores
Para machear un patrn exactamente n nmero de veces

simplemente se debe especificar el nmero dentro de llaves:

65

Ejemplos: Regular Expression Pattern


Username

Time in 12-Hour Format

66

Ejemplos: Regular Expression Pattern


Time in 24-Hour Format

Date Format (dd/mm/yyyy)

IP Address

Email

67

Uso del mtodo split(String)

68

SWING
Swing es una biblioteca grfica para Java. Es parte de la Sun

Microsystems' Java Foundation Classes (JFC).


Se desarrollo a partir de AWT.
Incluye widgets para
interfaz grfica de
usuario tales como
cajas de texto, botones,
desplegables y tablas.

69

Caractersticas de SWING
Independiente de plataforma.
Extensible: es una arquitectura altamente particionada: los

usuarios pueden proveer sus propias implementaciones.


Personalizable: dado el modelo de representacin programtico

del framework de swing, permite representar diferentes estilos


de apariencia "look and feel.

70

Swing
El API de Swing es formado

por los siguientes paquetes:

71

Aplicaciones SWING
Una aplicacin GUI SWING esta compuesta de:
Contenedores
JFrame, JDialog, JWindow, JApplet

Contenedor

Componentes
JButton, JLabel, JComboBox, etc.

Layout Managers
BorderLayout, FlowLayout, etc.

Layout
72

Componentes

Contenedores: JFrame, JDialog


Un JFrame se lo usa para ventanas principales.
Tiene propiedades para iconos, ttulos, decoraciones para,

minimizar, maximizar y cerrar.


Usa por defecto Border Layout.
Se define el tamao con setSize() y se lo hace visible

con setVisible().
Se usa JDialog para ventanas modales. (Mensajes)
Se debe cerrar la ventana modal para que la aplicacin que la
invoco vuela a estar activa.
73

JFrame

74

Layout Managers

75

Componentes
Todos los componentes de Interfaz grfica de Swing

derivados de la Clase JComponent:

InventoryItem

76

JButton

JSlider

JComboBox

JTextField

JTree

JProgressBar

Manejo de eventos
Para el manejo de eventos Swing utiliza el modelo de Event

Delagation. En cual interactan tres participantes:


Event source, es el objeto cuyo estado cambia.
Event object, (Evento), encapsula el estado cambiado en el

event source.
Event listener, es el objeto que tiene que ser notificado.

77

Evento (Anonymous inner class)

78

Eventos y escuchadores

79

Componentes en SWING

80

Menus

81

Combo Box

82

Table

83

Modelo de Tabla
Los modelos de tabla son objetos que implementan la interface

TableModel; a travs de ellos es posible personalizar mucho ms y


mejor el comportamiento de los componentes
JTable, permitiendo
utilizar al mximo
sus potencialidades.

84

Manejo de Base de Datos


Los principales mecanismos para el manejo de bases
de datos con los que cuenta java son los siguientes:
JDBC

Java Database Connectivity


JPA (EJB 3)
Java Persistence API.
Mario Romero
Mario Romero

85

JDBC
JDBC - Java Database Connectivity es una API que permite la
ejecucin de operaciones sobre bases de datos desde el lenguaje
de programacin Java, independientemente del sistema operativo
donde se ejecute o de la base de datos a la cual se accede,
utilizando el dialecto SQL del modelo de base de datos que se
utilice.
Version actual:
JDBC 4.1 (incluida en Java SE 7).

86

Paquete java.sql
JDBC ofrece el paquete java.sql, en el que existen
clases muy tiles para trabajar con bases de
datos.

87

Driver BDD.
Para poder conectarse a la BD y lanzar consultas, es
preciso tener un driver adecuado para ella.
Un driver suele ser un fichero .jar que contiene una
implementacin de todas las interfaces de la API de
JDBC.
El driver lo proporciona el fabricante de la BD o un
tercero.
Nuestro cdigo nunca depende del driver, dado que
siempre trabaja contra los paquetes java.sql y
javax.sql.
88

Driver JDBC.

89

Arquitectura JDBC

90

Principales abstracciones de
la API de JDBC.

91

Ejemplo JDBC

92

Tipos Java y SQL estndar

93

Sentencias SQL
Con JDBC se pueden usar diferentes tipos de Statement
SQL esttico en tiempo de ejecucin, no
acepta parmetros
Statement stmt = conn.createStatement();

Para ejecutar la mismas sentencia


muchas veces (la prepara). Acepta
parmetros
PreparedStatement ps =
conn.prepareStatement(...);

Llamadas a procedimientos almacenados


94

CallableStatement s =
conn.prepareCall(...);

Uso de Statement
Tiene diferentes mtodos para ejecutar una sentencia
executeQuery(...)
Se usa para sentencias SELECT. Devuelve un ResultSet
executeUpdate()
Se usa para sentencias INSERT, UPDATE, DELETE o sentencias
DDL. Devuelve el nmero de filas afectadas por la sentencia
execute()
Mtodo genrico de ejecucin de consultas. Puede devolver uno
o ms ResulSet y uno o ms contadores de filas afectadas.

95

Uso de PreparedStatement
Los PreparedStatement se utilizan:
Cuando se requieren parmetros
Cuando se ejecuta muchas veces la misma sentencia
La sentencia se prepara al crear el objeto
Puede llamarse varias veces a los mtodos execute

PreparedStatement ps = conn.
prepareStatement("INSERT INTO Libros VALUES (?,?,?)");
ps.setInt(1, 23);
ps.setString(2, "Bambi");
ps.setInt(3, 45);
ps.executeUpdate();
96

Uso de CallableStatement
Permite hacer llamadas a los procedimientos almacenados de la base

de datos
Permite parmetros de entrada IN (como el
PreparedStatement), parmetros de entrada-salida INOUT y
parmetros de salida OUT
CallableStatement cstmt =
conn.prepareCall ("{call getEmpName (?,?)}");

cstmt.setInt(1,111111111);
cstmt.registerOutParameter(2,java.sql.Types.VARCHAR);
cstmt.execute();
String empName = cstmt.getString(2);
97

URLs JDBC de conexin.


A continuacin se muestran los urls JDBC de
conexin para los diferentes motores de Bases de
Datos:

98

Ejemplo JDBC conexin.


public class AbstractJdbcDao {
private static final String USER = "user_contactos";
private static final String PASSWORD = "user_contactos";
private static final String URL="jdbc:mysql://localhost:3306/contactos_bdd";
private static Connection conn;
public static Connection getConnection(){
try{
conn = DriverManager.getConnection(URL, USER, PASSWORD);
}catch(SQLException se){
//sout
System.out.println("Error al abri conexion");
se.printStackTrace();
}
return conn;
}

}
99

Ejemplo JNDI conexin.


public class ConexionJDBC {
public static Connection conn;
public static final String JNDI = "jdbc/medicinas";
public static final String CATALOGO = "medicamento";
public static Connection getConexion() {
InitialContext ctx = null;
DataSource ds = null;
try {
ctx = new InitialContext();
ds = (DataSource) ctx.lookup(ConexionJDBC.JNDI);
ConexionJDBC.conn = ds.getConnection();
ConexionJDBC.conn.setCatalog(ConexionJDBC.CATALOGO);
System.out.println("CONEXION::: " + ConexionJDBC.conn);
} catch (Exception ex) {
Logger.getLogger(ConexionJDBC.class.getName()).log(Level.SEVERE, null, ex);
}
return ConexionJDBC.conn;
}
100

Manejo de la transaccionabilidad
Por defecto, los drivers JDBC operan en modo autocommit. En este
modo, todos los comandos enviados a la base de datos operan en su
propia transaccin. Para controlar explcitamente la transaccionabilidad
se debe desactivar el modo autocommit: con.setAutoCommit(false)

101

Lotes de Transacciones
Muchas bases de datos soportan lotes, en los que se
minimiza la sobrecarga de transacciones realizando
mltiples operaciones update de la base de datos en
una sola operacin, o lote.

102

Networking
Cuando se escriben programas Java que se
comunican a travs de la red, se est
programando en la capa de aplicacin.
Tpicamente, no se necesita trabajar con las
capas TCP y UDP -- en su lugar se puede utilizar
las clases del paquete java.net.
Estas clases proporcionan
comunicacin de red
independiente del sistema.
103

Networking
A travs de las clases del paquete java.net, los
programas Java puede utilizan TCP o UDP para
comunicarse a travs de Internet. Las clases
URL, URLConnection, Socket, y SocketServer
utilizan el TCP para comunicarse a travs de la
Red.
Las
clases
DatagramPacket
y
DatagramServer utilizan UDP.

104

Networking
En Java, crear una conexin socket TCP/IP se
realiza directamente con el paquete java.net. A
continuacin se tiene un diagrama de lo que
ocurre en el lado del cliente y del servidor

105

Ejemplo de Servidor de ECO


TCP

106

Ejemplo Cliente de ECO TCP

107

PREGUNTAS ?

108

ANEXOS

109

Patrn de Diseo DAO


Descripcin
El problema que viene a resolver este patrn es
el de contar con diversas fuentes de datos (base
de datos, archivos, servicios externos, etc). De tal
forma que se encapsula la forma de acceder a la
fuente de datos. Se trata de que el software
cliente se centre en los datos que necesita y se
olvide de cmo se realiza el acceso a los datos o
de cual es la fuente de almacenamiento.
110

Patrn de Diseo DAO


Un DAO define la relacin entre la lgica de presentacin
y negocios por una parte y por otra los datos. El DAO
tiene un interfaz comn, sea cual sea el modo y fuente de
acceso a datos.

111

Patrn de Diseo DAO


Caractersticas
No es imprescindible, pero en proyectos de
cierta complejidad resulta til implementarlo.
El DAO accede a la fuente de datos y la
encapsula
para
los
objetos
clientes.
Entendiendo que oculta tanto la fuente como el
modo (JDBC) de acceder a ella.
El TransferObject encapsula una unidad de
informacin de la fuente de datos.
112

También podría gustarte