Upload
videoconferencias-utpl
View
1.018
Download
4
Embed Size (px)
Citation preview
ESCUELA: CIENCIAS DE LA COMPUTACIÓN
NOMBRES
PROGRAMACIÓN AVANZADA
Ing. Daniel Guamán
OCTUBRE 2011 – FEBRERO 2012
SEGUNDO BIMESTRE
2
Esquema de Contenidos
Colecciones
Genéricos
Expresiones Regulares
Conexiones a BDD
Sentencias CRUD
Multiprocesamiento
3
Colecciones
Son estructuras de datos (objetos).Se pueden realizar operaciones de Get, Set, Find, Clear, Contains, similar a usar sentencias CRUD en BDD.Sirven para simular el procesamiento de lo que se conoce como DataTable y/o DataSet Tipados y no Tipados en programación con VStudio.La interfaz Collection es la interfaz raíz en la jerarquía de colecciones, a partir de la cual se derivan las interfaces Set y List.
4
Tips ColeccionesList = ordenado
List = puede contener elementos duplicados
Set = Elementos únicos
LinkedList = Valores duplicados
Collections = Interfaz raiz en la jerarquia de Colecciones
Map = No puede contener claves duplicadas
5
Ejemplo Colecciones 1
//Crea el objeto colecciones arraylistList<String> Cursos = new ArrayList<String>();//Permite añadir los valores a la listaCursos.add(0, "Valor0");Cursos.add(1, "Valor1");Cursos.add(2, "Valor2");int tamanio = Cursos.size();System.out.println("Tamanio de la Collection: " + tamanio);System.out.println("Dado el indice retorna el elemento" + Cursos.get(0));System.out.println("Dando el elemento retorna el valor" + Cursos.indexOf("Valor1"));boolean resultado = Cursos.contains("Valor1");//Evaluar o buscar elemento dentro de la Coleccionif (resultado ==true)
System.out.println("Elemento encontrado: " + resultado + "en posicion es: " + Cursos.get(1));//permite setear o añadir nuevo valor en la collectionString set = Cursos.set(1, "ValorNN");int tamanio1 = Cursos.size();System.out.println("Nuevo elemento en posicion 1: "+ Cursos.get(1));
6
Ejemplo Colecciones 2
//Haciendo referencia a una Clase java
List <Persona> ListPersonas = new ArrayList<Persona>(); Persona p = new Persona("Daniel","Guaman"); Persona p1 = new Persona("Daniel2","Guaman2");
ListPersonas.add(p); ListPersonas.add(p1); int tamanio2 = ListPersonas.size(); System.out.print("Tamano Persona " + tamanio2);
//Clase Personapublic class Persona{ String Nombre; String Apellido; public Persona(String N, String A) {this.Nombre = N; this.Apellido = A;}}
7
GenéricosSimilar a trabajar con sobrecarga de Métodos.
Sobrecarga de Métodos: Varias Métodos que se programan de forma diferente y se
obtiene el mismo resultado.
8
Ejemplo Genéricos (Métodos Sobrecargados)public class Principal{ public static void main(String[] args) { Figura f= new Figura(4,5) {
@Override public double GetArea() { throw new UnsupportedOperationException("Not supported yet."); } }; f.GetArea(); }}abstract class Figura{//Atributosprotected int X1;protected int Y1;//Constructorpublic Figura (int X, int Y){ this.X1 = X; this.Y1 = Y;}
//Metodo Abstractopublic abstract double GetArea();}
9
Ejemplo Genéricos (Métodos Sobrecargados)class Triangulo extends Figura{ private double base; private double altura;
public Triangulo(int X, int Y, double b, double a){//llamada al contructor de la clase padre super(X,Y); this.base= b; this.altura= a;}public double GetArea(){
return (this.base * this.altura)/2;}class Cuadrado extends Figura{private double lado;public Cuadrado(int X, int Y, double l){//llamada al contructor de la clase padre super(X,Y); this.lado = l;}
public double GetArea(){
return (Math.pow(lado, 2));}
10
Expresiones Regulares
Sirven para realizar o validar temas como: longitud de cadenas, validacion de números de teléfono, celular, número de seguro social, email, etc.
Para las expresiones regulares se utilizan Pattern y Matcher; el primero para ubicar el patron de comparación y Matcher para poder validar la expresión.
//Pattern expression = Pattern.compile("[1-9]+[1-9]+[0]");Pattern expression = Pattern.compile("[a-z]+@[a-z]+[a-z]+[a-z]+[a-z]");//String test = "110";
String test = "daguaman@utpl"; Matcher matcher = expression.matcher(test); System.out.println("Matcher" + matcher); boolean res = matcher.matches(); System.out.println(res);
Pattern expresion2=Pattern.compile("[ \t]+$");String test2 = "Es una prueba para elimnar espacios";Matcher matcher1 = expresion2.matcher(test2);System.out.println(matcher1);
11
Conexiones a Base de Datos
Una BDD permite almacenar datos e información.Una BDD posee objetos que son propios de BDD entre los que destacan Tablas, indices, paquetes, procedimientos almacenados, triggers, etc.Un motor de BDD puede ser: Oracle, SQL, MySql, Access, DB2, etc.En java para conectarse a una BDD se necesita importar el paquete java.sql.Para operar con una BDD en java:
Conectarse a la BDD. Abrir la BDD. Operar sobre la BDD. Cerrar la conexión a la BDD.
//Metodo que permite realizar conexion a BDD en este caso Access private static Connection getConnection() throws Exception { Driver d = (Driver)Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); Connection c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=c:/BASE/prueba.mdb"); return c; }
12
Sentencias CRUD
Sentencias SQL que permiten operar sobre una BDD.
Se utilizan con cualquier lenguaje de programación que permita conexión a BDD.
C = Create -> InsertR = Read -> SelectU = UpdateD = Delete
Ejemplos:
SELECT * FROM DUAL;SELECT CAMPO1 FROM DUAL;SELECT CAMPO1, CAMPO2, CAMPO3….. FROM DUALINSERT INTO TABLA VALUES(1,2,”A”);
13
Ejemplos Sentencias CRUD en java //Objeto Connection Connection conn = getConnection(); //Objeto para manipulas las sentencias SQL java.sql.Statement sentencia = conn.createStatement(); //Ejecucion de la sentencia SQL java.sql.ResultSet rsResultado = sentencia.executeQuery("SELECT * FROM ESTUDIANTES"); //Recorrer las filas resultantes while (rsResultado.next()) { System.out.println(rsResultado.getString("CEDULA")); System.out.println(rsResultado.getString("NOMBRES")); System.out.println(rsResultado.getString("APELLIDOS")); } rsResultado.close(); sentencia.close();
java.sql.Statement sentenciaINS = conn.createStatement();String sql= "INSERT INTO ESTUDIANTES VALUES (7,'1108','BBBBB','XXXXX')";int rsResultadoINS = sentenciaINS.executeUpdate(sql);sentenciaINS.close();java.sql.Statement sentenciaUPD = conn.createStatement();String sqlUPD= "UPDATE ESTUDIANTES SET NOMBRES = 'DANIEL' WHERE ID = 6";int rsResultadoUPD = sentenciaUPD.executeUpdate(sqlUPD);sentenciaUPD.close();conn.close();
14
Bases de Datos
Gestores o Motores de BDD: SQL Server, Mysql, Oracle, Access.
BDD Livianas: Access, MySql.
BDD contiene tablas y dentro de las tablas se tiene filas y columnas o tuplas y columnas.
Sql es el lenguaje para operar en una BDD.
15
Multiprocesamiento
Para realizar el multiprocesamiento se necesita de programar HILOS.
Hilos = Thread; poseen prioridad (alta, media, baja)
Dentro de un programa java se puede tener 1, 2 o mas hilos.
Temas similares a multiprocesamiento tienen que ver con el rendimiento del Equipo (PC).
Para ejecutar un hilo se necesita del uso de Start y su ejecución se encuentra dentro de
run.
El uso del multiprocesamiento es similar a los temas estudiados en los temas de
recursividad.
Con multiprocesamiento se puede realizar los siguiente:
Ejecutar un programa que muestre los números pares.
En una GUI poder ingresar valores a una BDD.
En una GUI ubicar un reloj que incremente segundo, minuto y hora.
16
Multiprocesamientopublic class Hilos2 extends Thread{ public void run() { while(true) {Pares();}}}public void Pares(){ for (int i =0; i<100000; i++) { if (i%2 == 0) System.out.println("Par :" + i);}}//llamada a los hilos para su ejecucion Hilos h1 = new Hilos(); public PruebaHilos() {
h1.start(); Hilos2 h2 = new Hilos2(); h2.start(); }
17
Preguntas Ejemplo:El término CRUD significa: a) Create, Read, Update y Deleteb) Create, Reset, Update y Deletec) Create, Read, Unique y Deleted) Create, Red, Update, Diference
Un objeto List es un objeto Collections ………..que puede contener elementos duplicadosa) ordenadob) desordenadoc) en arraysd) todas las anteriores
La interfaz…………define a una colección que representa a una línea de esperaa) Setb) Collectionc) Queued) Collections
Una colección es: a) una claseb) un objetoc) una sentencia de controld) todas las anteriores
18
Preguntas Ejemplo Ensayo:
Remítase a las presentaciones 6 y 13.
Conocimientos previos:
Creación de Clases.Definición de atributos y métodos de clase.Conocer sentencias CRUD y el uso de getConnection, CreateStament, ExecuteConocer para que se utiliza Set, Clear, IndexOf.