Aplicaciones para sistemas distribuidos slide

25
APLICACIONES PARA SISTEMAS DISTRIBUIDOS Ing. Ma.Elena Parra Urías COMPRAS EN LÍNEA! Instituto Tecnológico de Tepic

description

Esta sencilla presentación contiene la parte inicial para un proyecto de base de datos en mysql ejecutándose a través de una Aplicación Java haciendo uso de NetBeans. Representa sólo una parte 15% de un proyecto final que se irá adjuntando.La Materia es Aplicaciones para Ambientes Distribuidos de la Carrera de Licenciatura en Informática del Instituto Tecnológico de Tepic.

Transcript of Aplicaciones para sistemas distribuidos slide

Page 1: Aplicaciones para sistemas distribuidos slide

APLICACIONES PARA SISTEMAS DISTRIBUIDOS

Ing. Ma.Elena Parra Urías

COMPRAS EN LÍNEA!

Instituto Tecnológico de Tepic

Page 2: Aplicaciones para sistemas distribuidos slide

Sitio “Mercado”

DESCRIPCIÓN DEL PROYECTO:

PARTE IDesarrollaremos una Aplicación Java con manejo de base de datos en MySql, que utilizará el administrador de la Base de Datos para realizar operaciones sobre el contenido de la misma.

PARTE IIDesarrollaremos una Aplicación WEB haciendo uso de PHP accediendo a la Base de Datos creada en la parte I, ambos sistemas trabajarán de manera conjunta.

Page 3: Aplicaciones para sistemas distribuidos slide

Recordando Compras en Línea

Page 4: Aplicaciones para sistemas distribuidos slide

Requerimientos de Desarrollo

¿Qué conocimientos debo tener para desarrollar el proyecto

propuesto?

Page 5: Aplicaciones para sistemas distribuidos slide

• Deberás tener conocimientos básicos de Creación y manipulación de Base de Datos

• Conocimientos básicos de Java• Conocimientos en el manejo de

Aplicaciones Java haciendo uso de NetBeans, diseño básico, páneles, botones, creación de eventos…

• Conocimientos básicos de DreamWeaver

• Conocimientos básicos de PHP

?

Page 6: Aplicaciones para sistemas distribuidos slide

Generación de la Base de Datos MySql

• La Base de datos tendrá el nombre de “sitio_mercado” .Su estructura es la siguiente:

# SQL Manager 2010 for MySQL 4.5.0.9# ---------------------------------------# Host : localhost# Port : 3306# Database : sitio_mercado

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES latin1 */;

SET FOREIGN_KEY_CHECKS=0;

CREATE DATABASE `sitio_mercado` CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';

USE `sitio_mercado`;

## Structure for the `usuario` table : #

CREATE TABLE `usuario` ( `ID_USUARIO` bigint(20) NOT NULL auto_increment, `NOMBRE` varchar(50) NOT NULL, `DOMICILIO` varchar(60) NOT NULL, `CORREO_ELECTRONICO` varchar(60) NOT NULL, `VIGENTE` char(1) NOT NULL, `SEXO` char(1) NOT NULL, `PREGUNTA_SECRETA` varchar(100) NOT NULL, `FECHA_NACIMIENTO` date NOT NULL, `POBLACION` varchar(60) NOT NULL, `DEMARCACION` varchar(60) NOT NULL, `PAIS` varchar(100) NOT NULL, PRIMARY KEY (`ID_USUARIO`)) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

Page 7: Aplicaciones para sistemas distribuidos slide

## Structure for the `ventas` table : #

CREATE TABLE `ventas` ( `FOLIO` int(11) NOT NULL auto_increment, `FECHA_ORDEN` date NOT NULL, `FECHA_PAGO` date NOT NULL, `FECHA_ENTREGA` date NOT NULL, `TIPO_PAGO` varchar(30) NOT NULL, `BANCO` varchar(30) NOT NULL, `FOLIO_PERSONA` int(11) NOT NULL, `OBSERVACIONES` varchar(70) default NULL, `POBLACION` varchar(70) NOT NULL, `ESTADO` varchar(70) NOT NULL, `PAIS` varchar(70) NOT NULL, `CONTINENTE` varchar(70) NOT NULL, `MONTO` decimal(9,2) NOT NULL, PRIMARY KEY (`FOLIO`)) ENGINE=MyISAM AUTO_INCREMENT=5002 DEFAULT CHARSET=latin1;

Continuación Base de Datos

Page 8: Aplicaciones para sistemas distribuidos slide

PARTE I. Proyecto en NetBeans

• Generar una aplicación Java en NetBeans con el nombre “Sitio_Mercado”

• Generar los siguientes Frame’s o Formularios– FrameAcceso– FramePrincipal– FrameBotoneraUsuarios– FrameIngresaUsuarios– FrameConsultaUsuarios

Page 9: Aplicaciones para sistemas distribuidos slide

Formato FrameAccesoDar el siguiente formato propuesto a la ventana de Acceso al Sistema

Page 10: Aplicaciones para sistemas distribuidos slide

FramePrincipalSe sugiere el siguiente formato para la pantalla principal

Page 11: Aplicaciones para sistemas distribuidos slide

FrameBotoneraUsuarios

Page 12: Aplicaciones para sistemas distribuidos slide

FrameIngresaUsuarios¿Qué otra información debe contener el siguiente Frame? Toda la relación de

campos que integran la Tabla Usuarios

Page 13: Aplicaciones para sistemas distribuidos slide

Conector JDBC para MySql

Para descargar el conector JDBC que será el puente entre la Aplicación Java y MySql deberás acceder al sitio oficial:

http://dev.mysql.com/downloads/connector/j/

Trata de descargar la última versión.

Page 14: Aplicaciones para sistemas distribuidos slide

¿Cómo agregarlo al Proyecto?

¡Muy sencillo! En la sección de Librerías deberás dar botón derecho Add File/JAR Folder, tal y como se muestra en la siguiente figura:

Page 15: Aplicaciones para sistemas distribuidos slide

…Continuación conector

Presionar “Abrir” y Listo!

Page 16: Aplicaciones para sistemas distribuidos slide

Código en Java para Conectarse a Bases de Datos en Mysql

Para la conexión es necesario incluir el siguiente conjunto de librerías:

import java.sql.DriverManager;import java.sql.Connection;import java.lang.ClassNotFoundException;import java.sql.*;

Page 17: Aplicaciones para sistemas distribuidos slide

Código para conectarse a una Base de Datos en MySql con código en Java

A continuación se presenta el código base para una conexión de Base de datos MySql desde Java

try { /**** Cargamos el driver ****/ Class.forName("com.mysql.jdbc.Driver"); /**** Realizamos la conexión ****/Connection MiConexion = DriverManager.getConnection("jdbc:mysql://localhost/NOMBRE_BD", “USUARIO", “PASSWORD" ); JOptionPane.showMessageDialog(this,"Se ha conectado a la Base de Datos!!!"); }/**** Excepción que se dispara si falla la carga del driver ****/ catch( ClassNotFoundException f ) { f.printStackTrace(); } /**** Excepción que se dispara si falla la conexión *****/catch ( SQLException f) { f.printStackTrace(); }

Recuerda

Page 18: Aplicaciones para sistemas distribuidos slide

Recuerda modificar:

• Te he colocado la fuente en color rojo el nombre que deberás modificar dependiendo del nombre de tu base de datos, nombre de super usuario de MySql y su contraseña.

• Si no has configurado el nombre de usuario y contraseña de MySql, entonces superusuario será “root” y password “”

• Veamos como quedaría para nuestro ejemplo:

Page 19: Aplicaciones para sistemas distribuidos slide

try { /**** Cargamos el driver ****/ Class.forName("com.mysql.jdbc.Driver"); /**** Realizamos la conexión ****/Connection MiConexion = DriverManager.getConnection("jdbc:mysql://localhost/sitio_mercado", “root", “" ); JOptionPane.showMessageDialog(this,"Se ha conectado a la Base de Datos!!!"); }/**** Excepción que se dispara si falla la carga del driver ****/ catch( ClassNotFoundException f ) { f.printStackTrace(); } /**** Excepción que se dispara si falla la conexión *****/catch ( SQLException f) { f.printStackTrace(); }

Si toda la información es correcta deberá aparecerte el Cuadro de Diálogo con el mensaje “Se ha conectado a

la Base de Datos”

No olvides agregar la librería para el JOptionPane

import javax.swing.JOptionPane;

Page 20: Aplicaciones para sistemas distribuidos slide

Código para INSERTAR

• ¿Recuerdas el código para Insertar en SQL?Sintaxis:INSERT INTO NOMBRE_TABLA

VALUES(Valor1, Valor2,Valor3);

Veamos un ejemplo!

Page 21: Aplicaciones para sistemas distribuidos slide

Ejemplo de Insertar en MySql en la tabla Ventas de la Base de datos “sitio_mercado”

INSERT INTO `usuario` (`ID_USUARIO`, `NOMBRE`, `DOMICILIO`, `CORREO_ELECTRONICO`, `VIGENTE`, `SEXO`, `PREGUNTA_SECRETA`, `FECHA_NACIMIENTO`, `POBLACION`, `DEMARCACION`, `PAIS`) VALUES

(2,'ROSA MARIA CASTRO JIMENEZ','URES NO. 100 COL CENTRO','[email protected]','S','F','EL NOMBRE DE MI MASCOTA ES PELUSA','1990-10-12','TEPIC','NAYARIT','MEXICO');

Page 22: Aplicaciones para sistemas distribuidos slide

¿Cómo quedaría el Código para Insertar datos en la tabla Usuarios?

• try {• • /**** Cargamos el driver ****/• Class.forName("com.mysql.jdbc.Driver");• • /**** Realizamos la conexión ****/• Connection con = DriverManager.getConnection("jdbc:mysql://localhost/sitio_mercado", "root", "" );• • Statement st=con.createStatement();•

st.executeUpdate("INSERT INTO USUARIO VALUES(0, '“+jTextField1.getText())+"','"+jTextField2.getText()+"','"+jTextField3.getText()+

• jTextField4.getText())+"','"+jTextField5.getText()+"','"+jTextField6.getText()+• jTextField7.getText())+"','"+jTextField8getText()+"','"+jTextField9.getText()+"','"+jTextField10.getText()+• "')");• JOptionPane.showMessageDialog(this,"Se ha insertado en la Base de Datos!...Excelente!!!");• • }• /**** Excepción que se dispara si falla la carga del driver ****/• catch( ClassNotFoundException f ) { f.printStackTrace(); }• • /**** Excepción que se dispara si falla la conexión *****/• catch ( SQLException f) { f.printStackTrace(); }

Page 23: Aplicaciones para sistemas distribuidos slide

Nota Importante

• Te he colocado en color rojo, los caracteres que deben ser comilla simple.

• ¿Y esto por qué? Si revisas la sintaxis de SQL para insertar, para las cadenas se requiere colocar la comilla simple, ¿sencillo verdad?

Page 24: Aplicaciones para sistemas distribuidos slide

…Aún nos falta un gran camino por recorrer para la culminación de

nuestro proyecto.

No te preocupes te enlazaremos para la continuación…

próximamente.

Agradecemos a:http://ilustrandoenmexico.blogspot.com/p/ilustradores-mexicanos.htmlPor la facilidad para publicar sus diferentes ilustraciones.

Page 25: Aplicaciones para sistemas distribuidos slide

Marié