Está en la página 1de 23

ESCUELA POLITCNICA NACIONAL PROYECTO F INAL

Realizado por: Poogramers

1.- Anlisis
OBJETIVOS: 1. Desarrollar un programa para una minitienda, el cual permita el ingreso de clientes, productos y sus respectivas compras, mediante una interfaz grfica. 2. Implementar el uso de base de datos al cdigo java. 3. Realizar las validaciones necesarias, con el uso de expresiones regulares. 4. Aplicar los conceptos bsicos de la Programacin Orientada a Objetos, como son: Polimorfismo, herencia, etc. ESPECIFICACIONES El programa que se ha implementado se lo ha realizado en la plataforma NetBeans, lo cual se debe tener en cuenta al momento de compilarlo y/ ejecutarlo. Debido a que el programa necesita de una interaccin con Base de Datos, recurrimos al servidor web phpmyadmin. Para la generacin de la base de datos se us My Sql MARCO TERICO Programacin Orientada a Objetos con Java Como es sabido hay muchos lenguajes de programacin orientada a objetos POO que tienen muchas similitudes entre si, pero puntualmente nos enfocaremos en Java, utilizaremos para tal efecto un modelo de fbrica de objetos, para introducir los trminos clase, objeto, mtodo, propiedad, esttico, dinmico, donde la fbrica de objetos ser el entorno de ejecucin o JRE.

Clases en Java Las clases son el centro de la Programacin Orientada a Objetos. Algunos conceptos importantes de la POO son los siguientes: Encapsulacin. Las clases pueden ser declaradas como pblicas (public) y como package(accesibles slo para otras clases del package). Las variables miembro y los mtodos pueden ser public, private, protected y package. De esta forma se puede controlar el acceso y evitar un uso inadecuado. Herencia. Una clase puede derivar de otra (extends), y en ese caso hereda todas sus variables y mtodos. Una clase derivada puede aadir nuevas variables y mtodos y/o redefinir las variables y mtodos heredados. Polimorfismo. Los objetos de distintas clases pertenecientes a una misma jerarqua o que implementan una misma interface pueden tratarse de una forma general e individualizada, al mismo tiempo. El polimorfismo tiene que ver con la relacin que se establece entre la llamada a un mtodo y el cdigo que efectivamente se asocia con dicha llamada. A esta relacin se llama vinculacin (binding). La vinculacin puede ser temprana (en tiempo de compilacin) o tarda (en tiempo de ejecucin). Con funciones normales o sobrecargadas se utiliza vinculacin temprana (es posible y es lo ms eficiente). Con funciones redefinidas en Java se utiliza siempre vinculacin tarda, excepto si el mtodo es final. El polimorfismo es la opcin por defecto en Java. Herencia soportada por Java Java no soporta herencia mltiple, es decir no podemos fabricar un objeto ms complejo con dos diferentes ms simples, sino que slo podremos heredar objetos nuevos de un slo objeto padre, que proveer los mtodos y propiedades bsicas que sern extendidas y/o ampliadas por el nuevo objeto. Es decir no podramos tener un objeto Lmpara Reloj que derive del objeto Lmpara y del objeto Reloj, sino que tendramos que usar otros mecanismos para proporcionar esa funcionalidad, interfaces y alojamiento de objetos. Esto podra comprenderse como: Interfaces: Permiten que sean implementadas por objetos para adquirir comportamiento, pero el comportamiento no es provisto por la interfaz, sino que el programador debe proporcionar una manera eficaz de construir los mtodos definidos en dicha interfaz uno por uno. Pueden implementarse varias interfaces al mismo tiempo, en todos los casos es necesario codificar funciones o mtodos.

Alojamiento: Podemos pensar que al objeto Lmpara le insertamos en su interior un objeto Reloj entonces podemos llamar a los mtodos del Reloj que est en la Lmpara, esto lo veremos ms adelante en algunos ejemplos. Ya no sera la Lmpara Reloj, pero sera una Lmpara con Reloj. Herencia: Nos permite crear un objeto nuevo en base a uno existente, es una nueva clase de objeto, puede utilizar el alojamiento de otros objetos como propiedades para adquirir funcionalidad. Arreglos o Vectores. Los arreglos son como un vector, con varias componentes incluso en programacin un arreglo puede representar una matriz de varias dimensiones. Por ejemplo si tenemos 10 frases que ensearemos segn un nmero del 1 al 10, podemos utilizar un vector de una sola dimensin, donde indicaremos con un subndice a los elementos que este mismo almacene. En Java un arreglo se representa por un objeto que tiene un lmite de elementos al ser definido, o en alguna parte de nuestro programa le asignaremos un objeto arreglo de cierto tipo. Los elementos que pondremos en nuestro arreglo de datos deben estar definidos en cantidad, no en valor, si creemos que podemos necesitar ms o menos 10+/3 elementos asignaremos 13 por ms que a veces usemos 7. Los arreglos tienen una cantidad de elementos, pero el subndice que usaremos para acceder al contenido de cada elemento ir del 0 a ELEMENTOS Expresiones regulares Una expresin regular, a menudo llamada tambin patrn, es una expresin que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Hndel y Haendel se describe mediante el patrn "H(a||ae)ndel". En el rea de la programacin las expresiones regulares son un mtodo por medio del cual se pueden realizar bsquedas dentro de cadenas de caracteres. Sin importar si la bsqueda requerida es de dos caracteres en una cadena de 10 o si es necesario encontrar todas las apariciones de un patrn definido de caracteres en un archivo de millones de caracteres, las expresiones regulares proporcionan una solucin para el problema. Adicionalmente, un uso derivado de la bsqueda de patrones es la validacin de un formato especfico en una cadena de caracteres dada, como por ejemplo fechas o identificadores.

Patrones para expresiones regulares


Oper. Descripcin Car acter c no especial. Casa consigo mis mo. Oper. Descripcin Car acter especial c (\: carcter de escape). Oper. Comenzar con X. Descripcin

\c

^X

X$

Finalizar con X.

X*

X cero o ms veces.

Un caracter indivudual cualquiera.

[c1c2c3]

Conjunto de caracter es. Casa si c1 o c2 o c3.

[^c1c2c3]

Casa con caracteres distintos de c1, c2 o c3.

[c1-c2]

Rango de caracteres. Casa con cualquier caracter entre c1 y c2.

[^c1-c2]

Casa con caracteres no comprendidos entre c1 y c2.

XY

Concatenacin. Casa si X va seguido de Y.

X+

X una o ms veces.

X?

X cero o una vez.

(X)

Agrupa X. (Adems, en JavaScript, graba en RegExp.$1...).

X|Y

Alternativa. Casa X o Y.

X{n}

X exactamente n veces.

X{n,}

X al menos n veces.

X{m,n}

X de m a nveces.

"cad"

Literal. Ignora los caracteres especiales de cad. (No se puede utilizar en JavaScript)

(?:X)

Casa X pero no lo captura.

X(?=Y)

Casa X s i va seguido de Y.

X(?!=Y)

Casa X s i no va seguido de Y.

X\b

X al final de una palabra.

X\B

X no est al final de una palabra.

\ctec

Car cter de control Ctrl+tec.

\d

Car cter numrico. Equivale a [0-9].

\D

Car cter no numrico. Equivale a [^0-9].

\s

Es pacio en blanco (separador). Equivale a [\f\n\r\t\v].

\S

Es pacio no blanco (separador). Equivale a [^\f\n\r\t\v].

\w

Car cter alfanumr ico. Equivale a [A-Za-z0-9_].

\W

Car cter no alfanumrico. Equivale a [^AZa-z0-9_].

\num

Referenc ia atr as a subcadenas capturadas (num entero).

\xhh

Car cter cuyo cdigo en hexadecimal es hh.

NetBeans La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un conjunto de componentes de software llamados mdulos. Un mdulo es un archivo Java que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones construidas a partir de mdulos pueden ser extendidas agregndole nuevos mdulos. Debido a que los mdulos pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software. La Plataforma NetBeans Durante el desarrollo del NetBeans IDE ocurri una cosa interesante. La gente empez a construir aplicaciones usando el NetBeans core runtime con sus propios plug- ins, de hecho, esto se convirti en un mercado bastante grande. La Plataforma NetBeans es una base modular y extensible usada como una estructura de integracin para crear aplicaciones de escritorio grandes. Empresas independientes asociadas, especializadas en desarrollo de software, proporcionan extensiones adicionales que se integran fcilmente en la plataforma y que pueden tambin utilizarse para desarrollar sus propias herramientas y soluciones. La plataforma ofrece servicios comunes a las aplicaciones de escritorio, permitindole al desarrollador enfocarse en la lgica especfica de su aplicacin. Entre las caractersticas de la plataforma estn:

Administracin de las interfaces de usuario (ej. mens y barras de herramientas) Administracin de las configuraciones del usuario Administracin del almacenamiento (guardando y cargando cualquier tipo de dato) Administracin de ventanas Framework basado en asistentes (dilogos paso a paso)

JDBC(Java Data Base Conection) Introduccin a JDBC JDBC es un API de Java para ejecutar sentencias SQL. Est formado por un conjunto de clases e interfaces programadas con el propio Java. Permite interactuar con bases de datos, de forma transparente al tipo de la misma. Es decir, es una forma nica de programar el acceso a bases de datos desde Java, independiente del tipo de la base de datos. JDBC realiza llamadas directas a SQL. Existen cuatro categoras de drivers que soportan la conectividad JDBC3, por ejemplo: puente JDBC-ODBC, drivers de red, drivers nativos .

En la prctica utilizaremos un driver especfico que permite la comunicacin directa de JDBC con MySQL. Su nombre es MySQL Connector/J 5.0 y es un driver nativo que convierte llamadas JDBC al protocolo de red utilizado por la base de datos MySQL. Este driver es necesario tenerlo instalado en el cliente y cambiar la variable CLASSPATH para que contenga la ruta del fichero .jar o de las carpetas org y com del driver. Para utilizarlo desde un entorno como el Eclipse, es necesario cambiar las propiedades del proyecto y aadir el .jar del driver como un jar externo. Una vez seleccionado el driver el resto del cdigo es independiente del SGBD

Paquete java.sql Las clases que conforman el API JDBC4 se encuentran agrupadas en el paquete java.sql. Este paquete contiene clases para cargar los drivers, realizar las conexiones a las bases de datos, consultar los datos y manejar un conjunto de registros. Tambin posee las clases para el manejo de excepciones que se produzcan en el acceso a bases de datos. A continuacin mostramos un esquema en el cual se encuentran las interfaces y clases fundamentales del paquete java.sql.

La interface Driver es la interface que todos los drivers deben implementar. Cada driver que quiera ser utilizado para conectarse a una base de datos desde Java debe suministrar una clase que implemente la interface Driver. La clase Drive rManager proporciona el servicio bsico para manejar un conjunto de drivers JDBC. La interface Connection representa una conexin o sesin con una base de datos especfica. La clase Types define las constantes que se utilizarn para identificar tipos genricos SQL, estas constantes son llamadas tipos JDBC. Las clases Date y Time se utilizan para representar los valores de fecha y hora desde el cdigo de Java permitiendo a JDBC identificarlos como SQL DATE y SQL TIME. Las interfaces DatabaseMetaData y ResulSetMetaData permitirn obtener informacin referente al diseo y estructura de la base de datos y de los ResultSet que se obtengan respectivamente. La clase SQLException representa a las excepciones relacionadas con el acceso a base de datos y proporciona informacin acerca del error que ha ocurrido. Pasos para crear una aplicacin JDBC Cargar el driver JDBC. Conectarse a la Base de Datos utilizando la clase Connection. Crear sentencias SQL, utilizando objetos de tipo Statement. Ejecutar las sentencias SQL a travs de los objetos de tipo Statement. En caso que sea necesario, procesar el conjunto de registros resultante utilizando la clase ResultSet.

Para comunicar Java con un SGBPara comunicar Java con un SGBD Hay que conocer: Fichero fsico que contiene el driver (jar/zip) (debe estar incluido en el CLASSPATH de la aplicacin) Nombre de la clase driver de Java (opcional) URL de conexin

Algunos driver JDBC MySql Clase Driver : com.mysql.jdbc.Driver URL de Conexin: jdbc:mysql://<host>/<database> Fichero .jar/.zip: mysql-connector-java-5.0.4-bin.jar SQLServer Clase Driver : com.microsoft.jdbc.sqlserver.SQLServerDriver URL de Conexin: jdbc:microsoft:sqlserver://localhost:1433 Fichero .jar/.zip: mssqlserver.jar, msbase.jar, msutil.jar phpMyadmin phpMyAdmin es un programa de libre distribucin en PHP, creado por una comunidad sin nimo de lucro, que slo trabaja en el proyecto por amor al arte. Es una herramienta muy completa que permite acceder a todas las funciones tpicas de la base de datos MySQL a travs de una interfaz web muy intuitiva.

La aplicacin en si no es ms que un conjunto de archivos escritos en PHP que podemos copiar en un directorio de nuestro servidor web, de modo que, cuando accedemos a esos archivos, nos muestran unas pginas donde podemos encontrar las bases de datos a las que tenemos acceso en nuestro servidor de bases de datos y todas sus tablas. La herramienta nos permite crear tablas, insertar datos en las tablas existentes, navegar por los registros de las tablas, editarlos y borrarlos, borrar tablas y un largo etctera, incluso ejecutar sentencias SQL y hacer un backup de la base de datos. Caractersticas Interfaz Web intuitiva Apoyo a las caractersticas ms MySQL: buscar y borrar bases de datos, tablas, vistas, campos e ndices de crear, copiar, eliminar y cambiar el nombre de alterar las bases de datos, tablas, campos e ndices de Mantenimiento de servidores, bases de datos y tablas, con propuestas sobre la configuracin del servidor ejecutar, editar y marcar cualquier instruccin SQL-, incluso lote de consultas gestin de usuarios y privilegios de MySQL gestin de procedimientos almacenados y disparadores Importar datos de CSV y SQL Exportar datos a diferentes formatos: CSV, SQL, XML, PDF, ISO / IEC 26300 - OpenDocument de texto y hoja de clculo, Word, Excel, L A T E X y otros Administracin de mltiples servidores La creacin de grficos en PDF de su diseo de base de datos La creacin de consultas complejas utilizando consulta por ejemplo (QBE) Buscando a nivel mundial en una base de datos o un subconjunto de la misma La transformacin de los datos almacenados en cualquier formato, usando un conjunto de funciones predefinidas, como mostrar los datos de BLOB como imagen o enlace de descarga Y mucho ms ...

Interfaces grficas de usuario La mayor parte de las aplicaciones que se utilizan hoy en da incluyen interfaces de usuario ms sofisticadas que las de las aplicaciones que se ejecutan en modo consola. Java incluye, como parte de su biblioteca de clases estndar, un conjunto de componentes para crear interfaces grficas de usuario. Siguiendo la filosofa de su lema (write once, run anywhere), estos componentes permiten crear interfaces portables.

AWT y Swing Los componentes que se utilizan en Java para crear interfaces grficas de usuario se agrupan en dos paquetes (y sus correspondientes subpaquetes): java.awt (Abstract Window Toolkit)

Los componentes AWT dependen de las facilidades grficas ofrecidas por cada sistema operativo: los programas escritos con AWT tendrn un look and feel distinto en Windows y en UNIX. javax.swing

SWING es 100% Java y, por tanto, completamente independiente de la plataforma: los componentes grficos se pintan en tiempo de ejecucin (por lo que las aplicaciones SWING suelen ser algo ms lentas que las AWT). En la prctica, las aplicaciones Java con interfaces grficas de usuariosuelen mezclar AWT y SWING (porque AWT se encarga de toda la gestin de eventos y SWING ofrece componentes ms sofisticados). Frames Los frames (marcos) son ventanas en las que se pueden colocar otros controles de los que se utilizan para crear las interfaces grficas de usuario (botones, etiquetas, cajas de texto, listas desplegables, mens, etctera).

AWT SWING

2.- Diseo
Para el diseo del programa se utilizaron cierto tipo de expresiones regulares y ciertas libreras tales como: ^ $ [abc] [^abc] \\ | d{2} ostermiller.jar MySQL JDBC
PhpmyAdmin

Comienzo de una lnea Fin de una lnea a, b, o c Cualquier caracter excepto a, b, o c (negacin) Representa obligatoriedad Representa v/ Nmero de dgitos para cierta expresin (en este caso 2) Es una librera la cual utilizamos para codificar y decodificar el password del administrador.
JDBC es un API de Java para ejecutar sentencias SQL.

Para el diseo tambin se utilizaron JPanel, JFrame y JTextArea para mostrar los resultados y lo dems ha sido implementado con cosas ya utilizadas anteriormente.

3.- Implementacin
COMO FUNCIONA NUESTRO PROGRAMA? Inicialmente el programa nos nuestra una ventana de login donde debemos ingresar nombre de usuario y contrasea de administrador, previamente el administrador debe estar registrado.

Si los parmetros son ingresados incorrectamente (No consta como administrador) el programa desplegara una pantalla de error hasta que los datos sean ingresados correctamente.

Si los datos del administrador son ingresados correctamente se desplegara un Frame con toda la informacin que nuestro proyecto contiene.

Aqu el usuario podr interactuar con el programa ya sea aadiendo o eliminando los campos expuestos en el Frame. Si el usuario decide trabajar en la parte de Administradores presentara las siguientes opciones:

Insertar Administrador

Se mostrara un nuevo Frame con los campos que describen la informacin personal del nuevo administrador, cada uno de estos se encuentra validado mediante expresiones regulares correspondientes a los mismos. Si alguno de los datos ingresados son incorrectos aparecer un mensaje de error indicando cual ha sido el error cometido por el usuario. As:

Caso contrario si los datos ingresados por el usuario son correctos, se mostrara lo siguiente:

As el nuevo administrador estar listo para acceder en un nuevo login de usuario. Eliminar Administrador Aqu el usuario tiene la libertad de eliminar a cualquier persona de la lista de administradores excepto el usuario admin que ha sido tomado como root de nuestro programa. Si el usuario decide trabajar en la parte de Productos presentara caractersticas similares a lo mencionado en la parte de Administradores.

Si el usuario decide trabajar en la parte de Clientes presentara caractersticas similares a lo mencionado en la parte de Administradores.

Si el usuario decide trabajar en la parte de Ordenes presentara las siguientes caractersticas. Agregar orden

El usuario deber insertar la C.I. del cliente en cuestin, el programa detectara si la identificacin existe o no dentro de nuestra base de datos, diviendose as el proceso en dos partes: 1. Para un nuevo cliente Aparecera el siguiente mensaje:

Para nuestro ejemplo hemos insertado la C.I. 4534231213, la misma que no se encuentra registrada en nuestra base de datos, por tanto el programa permite crear un nuevo registro del cliente.

Una vez ingresados los datos del cliente se creara la orden de compra.

2. Para un cliente ya existente Al ingresar la C.I. el programa automticamente detectara que la identificacin ya existe en nuestra base de datos y as se mostrara instantneamente la orden de compra con los datos completos del cliente registrado. Una vez ingresados los datos completos del cliente a la orden de compra se proceder a elegir los productos que este necesite adquirir a travs del botn agregar tem desplegndose la siguiente ventana:

Aqu el cliente elegir el producto y la cantidad que desea comprar, todos los productos seleccionados se aadirn a la orden de compra creada a dicho cliente mostrando el valor total a pagar.

Una vez finalizada la eleccin de productos se proceder a realizar la compra respectiva presionando el botn comprar. Apareciendo un mensaje de confirmacin y as se creara la orden en nuestra base de datos con sus respectivos campos.

Como ltima instancia tenemos la pestana About donde se especifica el objetivo de nuestro programa y muestra lista de integrantes de grupo (Poogramers).

PRUEBAS Para constatar que nuestro programa est funcionando adecuadamente, es necesario verificar que los cambios que se realizan en la interfaz grafica afecten a nuestra base de datos realizando lo siguiente: Iniciamos un explorador en cual ingresaremos la direccin http://localhost/phpmyadmin/ para cargar nuestra base de datos. Una vez localizada la base podemos observar las distintas entidades con sus respectivos campos utilizados en el programa. Dentro de cada una de las entidades se podrn visualizar los cambios efectuados a travs de la interfaz grafica. A continuacin presentaremos un ejemplo de los cambios realizados en el programa. TABLA CLIENTES

TABLA ORDEN

TABLA PRODUCTO

También podría gustarte