Post on 05-Dec-2014
description
APLICACIONES PARA SISTEMAS DISTRIBUIDOS
Ing. Ma.Elena Parra Urías
COMPRAS EN LÍNEA!
Instituto Tecnológico de Tepic
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.
Recordando Compras en Línea
Requerimientos de Desarrollo
¿Qué conocimientos debo tener para desarrollar el proyecto
propuesto?
• 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
?
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;
## 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
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
Formato FrameAccesoDar el siguiente formato propuesto a la ventana de Acceso al Sistema
FramePrincipalSe sugiere el siguiente formato para la pantalla principal
FrameBotoneraUsuarios
FrameIngresaUsuarios¿Qué otra información debe contener el siguiente Frame? Toda la relación de
campos que integran la Tabla Usuarios
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.
¿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:
…Continuación conector
Presionar “Abrir” y Listo!
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.*;
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
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:
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;
Código para INSERTAR
• ¿Recuerdas el código para Insertar en SQL?Sintaxis:INSERT INTO NOMBRE_TABLA
VALUES(Valor1, Valor2,Valor3);
Veamos un ejemplo!
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','rocioduran@hotmail.com','S','F','EL NOMBRE DE MI MASCOTA ES PELUSA','1990-10-12','TEPIC','NAYARIT','MEXICO');
¿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(); }
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?
…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.
Marié