Top Banner
36

Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

May 02, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC
Page 2: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Java Nivel Básico Streams

Page 3: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Contenido

• Stream – Clase File

– Entrada/Salida

• JDBC – Concepto.

– Conexiones a base de datos.

– Envíos de sentencias SQL.

– Proceso de resultados.

– Talleres.

Page 4: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

4

Archivos

• Clase File

• Constructores

– File( String ruta)

– File( String ruta, String nombre)

– File( File directorio, String nombre)

• Constructores de otras clases

– FileReader( File archivo)

– FileWriter( File archivo)

Page 5: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Métodos

• canRead() comprueba si el archivo se puede leer

• canWrite() comprueba siel archivo se puede escribir

• delete() borra dicho archivo

• getPath() devuelve la ruta del archivo

• mkdir() crea un directorio con la ruta del objeto que lo recibe

• isDirectory() comprueba si dicho archivo es un directorio

Page 6: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

ENTRADA /SALIDA

FUENTE

PROGRAMA

stream

leer

•Para obtener información:

información

Un stream representa un flujo de información (Bytes)

Page 7: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

ENTRADA /SALIDA

DESTINO

PROGRAMA

stream

escribe

•Para escribir información:

DESTINO: archivo, dispositivo salida.

información

Page 8: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

• En términos de programación se denomina entrada a la posibilidad de introducir datos hacia un programa; salida sería la capacidad de un programa de mostrar información al usuario

ENTRADA /SALIDA

Page 9: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Entrada/Salida básica: desde un dispositivo de entrada o hacia un dispositivo de salida (teclado / monitor).

Entrada/Salida desde archivos dentro de un mismo proceso.

ENTRADA /SALIDA

Page 10: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

• Los programas se comunican con flujos y

estos flujos actúan como interfaz con el

dispositivo o clase asociada

– Operación independiente del tipo de datos y del

dispositivo

ENTRADA /SALIDA

Page 11: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

• Leer – abrir un stream – mientras haya información – leer información – cerrar el stream

• Escribir – abrir el stream – mientras haya información – escribir información – cerrar el stream

ENTRADA /SALIDA

Page 12: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

12

Subclases de Reader

• InputStreamReader: convierte un stream de bytes en un stream de chars.

– FileReader: se asocia a files de chars para leerlos.

• BufferedReader: proporciona entrada de caracteres a través de un buffer (más eficiencia).

Page 13: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

13

Subclases de Writer

• OutputStreamWriter: convierte un stream de bytes en un stream de chars. – FileWriter: se asocia a files de chars para

modificarlos.

• BufferedWriter: proporciona salida de caracteres a través de un buffer (más eficiencia).

• PrintWriter: métodos print() y println() para distintos tipos de datos.

Page 14: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

• Java tiene acceso a la entrada/ salida estándar a través de la clase java. lang. System

• Los flujos estándar son campos estáticos de System

• .System. in implementa la entrada estándar

• .System. out implementa la salida estándar

• .System. err implementa la salida de error

ENTRADA /SALIDA (INF. II)

Page 15: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

15

Típicos Usos de los Streams (lectura por líneas)

public static void main(String[] args) throws IOException { // 1a. Se lee un file línea a línea BufferedReader in = new BufferedReader( new

FileReader("IOStreamDemo.java")); String s, s2 = new String(); while((s = in.readLine())!= null) s2 += s + "\n"; in.close(); // 1b. Se lee una línea por teclado BufferedReader stdin = new BufferedReader( new

InputStreamReader(System.in)); System.out.print("Enter a line:");

System.out.println(stdin.readLine()); }

Page 16: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Combinación de flujos

• Ejemplo de cómo usar streams

Page 17: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

17

Típicos Usos de los Streams (escritura por líneas)

// throws IOException

String []s = {“hola“, “que”, “tal”};

// Se inicializa s

PrintWriter out1 = new PrintWriter( new BufferedWriter( new FileWriter("IODemo.out")));

int lineCount = 1;

for (int i=0; i<s.length(); i++)

out1.println(lineCount++ + ": " + s[i]);

out1.close();

Page 18: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Streams

• TALLER

Page 19: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Java Nivel Básico JDBC

Page 20: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Concepto

• Es un API (Interfaz para desarrollo de aplicaciones) para interactuar con bases de datos desde el lenguaje Java.

• Permite:

– La conexión con la base de datos.

– La extracción y manipulación de los datos de la base de datos.

– La llamada a procedimientos y funciones almacenadas.

Page 21: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Concepto

• La aplicación Java debe tener acceso a un controlador (driver) JDBC adecuado.

• Este controlador es el que implementa la funcionalidad de todas las clases de acceso a datos y proporciona la comunicación entre el API JDBC y la base de datos real.

Page 22: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Concepto

Aplicación Java

Oracle DB2 Microsoft SQL

Server

MySQL

Driver JDBC Oracle

Driver JDBC DB2

Driver JDBC SQL

Server

Driver JDBC

MySQL

Page 23: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Conexiones a base de datos

• Lo primero que debemos hacer es agregar el driver necesario a nuestro proyecto.

Page 24: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Conexiones a base de datos

Page 25: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Conexiones a base de datos

• Y luego creamos una clase que nos representará una conexión con la Base de Datos.

public class Conexion { private static Connection con; public static Connection getConexion() { if (con == null ) { inicializaConexion(); } return getCon(); } public static Connection getCon() { return con; }

Page 26: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Conexiones a base de datos

protected static void inicializaConexion() { try { String url="jdbc:oracle:thin:@127.0.0.1:1521:XE"; String user="usuario"; String password="clave"; DriverManager.registerDriver( new oracle.jdbc.driver.OracleDriver()); con=DriverManager.getConnection(url,user,password); con.setAutoCommit(false); System.out.println("Conexion Exitosa"); } catch(Exception e) { ex.printStackTrace(); } }

Page 27: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

En el método inicializaConexion podemos darnos cuenta que:

Conexiones a base de datos

public static void cerrarConexion() { if(con!=null) { try { con.close(); System.out.println("Conexión cerrada con éxito"); } catch(SQLException sqle) { e.printStackTrace(); } } } }

Page 28: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Conexiones a base de datos

– Creamos una url q contiene:

• La ip de la pc que contiene la base de datos.

• El puerto por el que se realizará la conexión.

• El nombre del servicio asociado a la base de datos.

– El usuario y la contraseña de la base de datos.

– El registro del driver necesario.

– La creación de la conexión a partir del driver.

Page 29: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Envío de sentencias SQL

• Se ejecuta la sentencia por medio de la conexión que poseemos.

• Dicha ejecución nos retorna un objeto de la clase ResultSet, que contiene todos los registros respectivos.

Page 30: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Envío de sentencias SQL

Connection con = Conexión.getConexion(); ResultSet res; String sql = "select id_categoria, descripcion from categorias"; res = con.createStatement().executeQuery(sql);

En este ejemplo, tendríamos guardado en nuestro objeto resCat todos los registros que resultaron de la ejecución de la sentencia SQL.

Page 31: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Envío de sentencias SQL

• Podemos también ejecutar sentencias SQL con variables bind.

Connection con = Conexión.getConexion(); ResultSet res; String sql = “select id_pelicula, nombre_pelicula ”+ “from alq_peliculas ”+ “where id_categoria = ?”; int id_categoria = 23; PreparedStatement pst; pst = con.prepareStatement(sql); pst.setInt(1, id_categoria); res = pst.executeQuery();

Page 32: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Proceso de resultados

• Consta del recorrido de nuestro objeto ResultSet, y los procesos que se deseen hacer sobre cada registro del mismo.

while (res.next()) { System.out.print(“Id: ”+ res.getInt(1)); System.out.println(“ – Pelicula: ”+res.getString(2)); }

Page 33: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Proceso de resultados

• En la primera iteración, el método next intenta ubicar un puntero en el primer registro del resultado. Además devuelve true si lo logra.

• Para las siguientes iteraciones, el método seguirá recorriendo cada registro hasta que ya no encuentre más. En ese instante, devuelve false.

Page 34: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

Proceso de resultados

• Para obtener los campos de un registro usamos el método getInt, getString, etc., dependiendo del tipo de dato que corresponda para el campo.

– El parámetro corresponde a la posición del campo en la cabecera de la sentencia select.

Page 35: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC

JDBC

• TALLER

Page 36: Java Nivel Básico Streams Contenido • Stream – Clase File – Entrada/Salida • JDBC