Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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);
10
11
API: java.io
12
FileInputStream / FileOutputStream
package com.flujo;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
13
Los Buffered*
Si usamos slo FileInputStream, FileOuputStream, FileReader o
14
Rene Segovia Q.
15
16
DataOutputStream / DataInputStream
Los objetos DataInputStream se comportan como
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
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
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)
22
Serializacion
Para que un programa pueda convertir un objeto en un
23
Serializacion
24
25
26
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
30
XPath
Seleccionado nodos desconocidos.
XPath wildcards pueden ser usados para seleccionar elementos XML
desconocidos.
31
33
Concurrencia
Existen muchos casos en los que es deseable dividir las tareas de una
Threads (Hilos).
Thread: Es la clase que encapsula todo el control necesario sobre los
35
Threads (Hilos).
Existen diversos tipos de constructores a partir de los cuales
36
Mtodos de Clase
Estos son los mtodos estticos que deben llamarse de
37
Mtodos de Instancia
38
Creacin de un hilo
Hay dos modos de conseguir hilos de ejecucin (threads) en
39
Ejemplo hilos
40
41
Estados de un Thread
42
Pepito inicia
su da
Pepito se va
a la casa
43
Mara
Mara inicia
su da
Mara en
clases
Mara sale de
clases
44
Mara se va a
la casa
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
Pepito
Pepito inicia
su da
Pepito
espera a
Mara
49
Pepito se va
a la casa
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
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
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
informacin.
regulares.
.
57
Paquete: java.util.regex
El paquete java.util.regex esta formado por dos clases, la clase Matcher
58
Ejemplo
59
60
Metacaracteres
El API tambin soporta un nmero de caracteres especiales
61
Metacaracteres
La siguiente tabla muestra algunos metacaracteres:
62
Metacaracteres
El API Pattern contiene un nmero de metaracteres
63
Cuantificadores
Los Cuantificadores permiten especificar el nmero de
64
Cuantificadores
Para machear un patrn exactamente n nmero de veces
65
66
IP Address
67
68
SWING
Swing es una biblioteca grfica para Java. Es parte de la Sun
69
Caractersticas de SWING
Independiente de plataforma.
Extensible: es una arquitectura altamente particionada: los
70
Swing
El API de Swing es formado
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
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
InventoryItem
76
JButton
JSlider
JComboBox
JTextField
JTree
JProgressBar
Manejo de eventos
Para el manejo de eventos Swing utiliza el modelo de Event
event source.
Event listener, es el objeto que tiene que ser notificado.
77
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
84
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
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();
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
98
}
99
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
106
107
PREGUNTAS ?
108
ANEXOS
109
111