send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[JAVA][MYSQL] Tutorial Basico

  • 8 Respuestas
  • 2605 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 59
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« en: Octubre 04, 2014, 04:33:17 pm »
Buenas gente llevo unos días preparando este tutorial que por mas básico que sea, me llevo un buen rato asi que espero que lo disfruten :P

Requisitos:
-IDE (Eclipse/Netbeans) No es obligatorio.
-Gestor de base de datos con MYSQL (Yo usare AppServ  2.5.10 pero se puede usar cualquier otro) Obligatorio.
-El driver MYSQL para conectarnos a la base de datos (Se puede bajar de la pagina oficial de MYSQL) Obligatorio.
-Conocimientos Básico-Intermedios de programación.


Introduccion:
Para llevar a cabo este tutorial se hará uso de la metodología MVC (Modelo-Vista-Controlador).
Citar
El cual es un patrón de arquitectura de software que separa los datos y la lógica de negocio de una aplicación de la interfaz de usuario y el módulo encargado de gestionar los eventos y las comunicaciones. Para ello MVC propone la construcción de tres componentes distintos que son el modelo, la vista y el controlador, es decir, por un lado define componentes para la representación de la información, y por otro lado para la interacción del usuario.Este patrón de arquitectura de software se basa en las ideas de reutilización de código y la separación de conceptos, características que buscan facilitar la tarea de desarrollo de aplicaciones y su posterior mantenimiento. WIKIPEDIA
                                                       

Diseño:

Base de datos
    • Creacion de la base de datos.
    [/list]
    Código: SQL
    1. CREATE DATABASE  `dbtest` ;
    • Creacion de la tabla y volcado de la misma.
    Código: SQL
    1. -- Estructura de tabla para la tabla 'producto'
    2. --
    3.  
    4. CREATE TABLE producto (
    5.   p_id VARCHAR(6) NOT NULL,
    6.   p_nombre VARCHAR(21) NOT NULL,
    7.   p_precio FLOAT NOT NULL DEFAULT '0',
    8.   p_cantidad INT(20) NOT NULL DEFAULT '0',
    9.   PRIMARY KEY  (p_id)
    10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    11.  
    12. --
    13. -- Volcar la base de datos para la tabla 'producto'
    14. --
    15.  
    16. INSERT INTO producto VALUES ('P9-U7J', 'Producto 1', 100, 0);
    17. INSERT INTO producto VALUES ('KO-8HY', 'Producto 2', 56.9, 0);
    18. INSERT INTO producto VALUES ('UJ-9KK', 'Producto 3', 120.5, 0);
    19. INSERT INTO producto VALUES ('KK-77G', 'Producto 4', 23.4, 0);
    20. INSERT INTO producto VALUES ('KJ-886', 'Producto 5', 88, 0);
    21. INSERT INTO producto VALUES ('PP-99P', 'Producto 6', 78.9, 0);
    22. INSERT INTO producto VALUES ('GH-77U', 'Producto 7', 99.9, 0);

    Estructura de la base de datos:
                             

    Programacion:
    • Estructura del programa

    • Creación de las clases:
    Empezaremos creando un nuevo proyecto en eclipse FILE -> New -> Java Project y de nombre al proyecto le pondremos TutorialUndercode. Click izquierdo en el proyecto (NEW -> Package ) y crearemos los paquetes controlador,vista y modelo.

    La Vista:
    Empezaremos creando el modelo GUI (Interfaz Grafica de Usuario) para nuestro proyecto que tendrá la siguiente forma:
                   

    VentanaVista2:
    Crearemos dentro del paquete vista otra ventana que nos permitira ingresar nuevos registros a la base de datos:
    Código: Java
    1. package vista;
    2.  
    3. import javax.swing.JDialog;
    4. /*
    5.  * Se desarrolla una clase de tipo JDialog que permite
    6.  *  agregar elementos a partir de una nueva ventana.
    7.  *
    8.  */
    9. public class VentanaVista2 extends You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
    10.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login txtID;
    11.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login txtNombre;
    12.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login txtPrecio;
    13.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login txtCantidad;
    14.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login aceptar;
    15.  
    16.         public VentanaVista2() {
    17.  
    18.                 iniciarComponentes();
    19.  
    20.         }
    21.  
    22.         /*
    23.          * Se inicializa una GUI normal.
    24.          */
    25.         private void iniciarComponentes() {
    26.  
    27.                 this.setSize(225, 209);
    28.                 getContentPane().setLayout(null);
    29.  
    30.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login id_producto = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("id_producto");
    31.                 id_producto.setFont(new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Tahoma", You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.PLAIN, 13));
    32.                 id_producto.setBounds(10, 11, 75, 14);
    33.                 getContentPane().add(id_producto);
    34.  
    35.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login nombre_producto = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Nombre");
    36.                 nombre_producto.setFont(new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Tahoma", You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.PLAIN, 13));
    37.                 nombre_producto.setBounds(10, 36, 75, 14);
    38.                 getContentPane().add(nombre_producto);
    39.  
    40.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login precio_producto = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Precio");
    41.                 precio_producto.setFont(new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Tahoma", You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.PLAIN, 13));
    42.                 precio_producto.setBounds(10, 61, 75, 14);
    43.                 getContentPane().add(precio_producto);
    44.  
    45.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login cantidad_producto = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Cantidad");
    46.                 cantidad_producto.setFont(new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Tahoma", You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.PLAIN, 13));
    47.                 cantidad_producto.setBounds(10, 86, 75, 14);
    48.                 getContentPane().add(cantidad_producto);
    49.  
    50.                 txtID = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
    51.                 txtID.setBounds(95, 9, 86, 20);
    52.                 getContentPane().add(txtID);
    53.                 txtID.setColumns(10);
    54.  
    55.                 txtNombre = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
    56.                 txtNombre.setColumns(10);
    57.                 txtNombre.setBounds(95, 34, 86, 20);
    58.                 getContentPane().add(txtNombre);
    59.  
    60.                 txtPrecio = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
    61.                 txtPrecio.setColumns(10);
    62.                 txtPrecio.setBounds(95, 59, 86, 20);
    63.                 getContentPane().add(txtPrecio);
    64.  
    65.                 txtCantidad = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
    66.                 txtCantidad.setColumns(10);
    67.                 txtCantidad.setBounds(95, 84, 86, 20);
    68.                 getContentPane().add(txtCantidad);
    69.  
    70.                 aceptar = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login("Aceptar");
    71.                 aceptar.setBounds(50, 127, 119, 33);
    72.                 getContentPane().add(aceptar);
    73.  
    74.         }
    75. }
    76.  
    • El Controlador:
    Creamos dentro del paquete controlador una clase llamada Controlador que hara de interfaz entre la conexion y consulta a la base de datos y la GUI.
    Código: Java
    1. package controlador;
    2.  
    3. import java.awt.event.ActionEvent;
    4. import java.awt.event.ActionListener;
    5. import java.awt.event.MouseEvent;
    6. import java.awt.event.MouseListener;
    7.  
    8. import javax.swing.JOptionPane;
    9. import javax.swing.table.DefaultTableModel;
    10.  
    11. import vista.VentanaVista2;
    12. import vista.VentanaVista;
    13. import modelo.Modelo;
    14.  
    15. public class Controlador implements You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login {
    16. /*
    17.  * Controlador:
    18.  * Comunica a la interfaz grafica con la logica
    19.  */
    20.         private VentanaVista2 vista2;
    21.         private Modelo modelo;
    22.         private VentanaVista vista;
    23.        
    24.         public Controlador(Modelo _modelo, VentanaVista _vista,
    25.                         VentanaVista2 _vista2) {
    26.                 this.vista2 = _vista2;
    27.                 this.modelo = _modelo;
    28.                 this.vista = _vista;
    29.                 this.vista.setVisible(true);
    30.                 agregarEventos();
    31.  
    32.         }
    33.  
    34.         private void agregarEventos() {
    35.  
    36.                 this.vista.btnAgregarProductos.addActionListener(this);// añadimos el// evento
    37.                 this.vista.btnAgregarProductos.setActionCommand("agregarProductos");// reconocimiento del boton
    38.                 this.vista.btnEliminarProductos.addActionListener(this);
    39.                                                                                                                                
    40.                 this.vista.btnEliminarProductos.setActionCommand("eliminarProductos");// reconocimiento del boton
    41.                 this.vista.btnVerProductos.addActionListener(this);// añadimos el evento
    42.                 this.vista.btnVerProductos.setActionCommand("verProductos");// reconocimiento del boton
    43.                 this.vista.itemCreditos.setActionCommand("creditos");
    44.                 this.vista.itemCreditos.addActionListener(this);
    45.                 this.vista.btnEditarProductos.addActionListener(this);
    46.                 this.vista.btnEditarProductos.setActionCommand("editarProductos");
    47.  
    48.                 // añade e inicia el jtable con un DefaultTableModel vacio
    49.                 this.vista.__tabla_producto.addMouseListener(this); // añadimos el
    50.                                                                                                                         // evento
    51.                 this.vista.__tabla_producto.setModel(new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login());
    52.                 this.vista.setLocationRelativeTo(null); // Centramos la aplicacion
    53.  
    54.         }
    55.  
    56.  
    57.         @Override
    58.         public void actionPerformed(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login evento) { //Se lleva a cabo el manejo de eventos
    59.                                                      
    60.                 switch (evento.getActionCommand()) {        
    61.  
    62.                 case "verProductos":
    63.  
    64.                         this.vista.__tabla_producto
    65.                                         .setModel(this.modelo.getTablaProducto());
    66.                         this.vista.btnVerProductos.setEnabled(false);
    67.                         break;
    68.  
    69.                 case "agregarProductos":
    70.  
    71.                         this.vista2 = new VentanaVista2();
    72.                         this.vista2.setModal(true);
    73.                         this.vista2.setLocationRelativeTo(vista);
    74.                         this.vista2.aceptar.addActionListener(this);
    75.                         this.vista2.aceptar.setActionCommand("nuevoRegistro");
    76.                         this.vista2.setVisible(true);
    77.                         break;
    78.  
    79.                 case "eliminarProductos":
    80.  
    81.                         if (this.modelo.EliminarProducto(
    82.                                         this.vista.__id_producto.getText(),
    83.                                         this.vista.__nombre.getText())) {
    84.  
    85.                                 this.vista.__tabla_producto.setModel(this.modelo
    86.                                                 .getTablaProducto());
    87.                                 this.vista.__id_producto.setText("");
    88.                                 this.vista.__nombre.setText("");
    89.                                 this.vista.__precio.setText("0");
    90.                                 this.vista.__cantidad.setText("0");
    91.                         }
    92.  
    93.                         break;
    94.                 case "creditos":
    95.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(this.vista,
    96.                                         "Modificiado y adaptado de http://www.jc-mouse.net/",
    97.                                         "Creditos", You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.INFORMATION_MESSAGE);
    98.  
    99.                         break;
    100.                 case "editarProductos":
    101.  
    102.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login id = this.vista.__id_producto.getText();
    103.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login nombre = this.vista.__nombre.getText();
    104.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login precio = this.vista.__precio.getText();
    105.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login cantidad = this.vista.__cantidad.getText();
    106.                         if (this.modelo.editarProducto(id, nombre, precio, cantidad)) {
    107.  
    108.                                 this.vista.__tabla_producto.setModel(this.modelo
    109.                                                 .getTablaProducto());
    110.                                 this.vista.__id_producto.setText("");
    111.                                 this.vista.__nombre.setText("");
    112.                                 this.vista.__precio.setText("0");
    113.                                 this.vista.__cantidad.setText("0");
    114.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(vista,
    115.                                                 "Registro agregado correctamente!!");
    116.                         } else {
    117.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(vista,
    118.                                                 "Error no pueden existir campos vacios");
    119.                         }
    120.  
    121.                         break;
    122.  
    123.                 case "nuevoRegistro":
    124.  
    125.                         if (this.modelo.NuevoProducto(this.vista2.txtID.getText(),
    126.                                         this.vista2.txtNombre.getText(),
    127.                                         this.vista2.txtPrecio.getText(),
    128.                                         this.vista2.txtCantidad.getText())) {
    129.                                 this.vista2.dispose();
    130.                                 this.vista.__tabla_producto.setModel(this.modelo
    131.                                                 .getTablaProducto());
    132.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(vista,
    133.                                                 "Exito: Nuevo registro agregado.");
    134.                                 this.vista.__id_producto.setText("");
    135.                                 this.vista.__nombre.setText("");
    136.                                 this.vista.__precio.setText("0");
    137.                                 this.vista.__cantidad.setText("0");
    138.                         } else
    139.                                 // ocurrio un error
    140.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(vista,
    141.                                                 "Error: Los datos son incorrectos.");
    142.                         break;
    143.  
    144.                 }
    145.  
    146.         }
    147.        
    148.           /*Se implementa el metodo abstracto que atiende el click del mouse
    149.            */
    150.         public void mouseClicked(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e) {
    151.                 if (e.getButton() == 1)// Si se presiona click sobre algun elemento del
    152.                                                                 // JTable lo mostramos en los textFields
    153.                 {
    154.                         int fila = this.vista.__tabla_producto.rowAtPoint(e.getPoint());
    155.                         if (fila > -1) {
    156.                                 this.vista.__id_producto.setText(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    157.                                                 .valueOf(this.vista.__tabla_producto
    158.                                                                 .getValueAt(fila, 0)));
    159.                                 this.vista.__nombre.setText(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    160.                                                 .valueOf(this.vista.__tabla_producto
    161.                                                                 .getValueAt(fila, 1)));
    162.                                 this.vista.__precio.setText(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    163.                                                 .valueOf(this.vista.__tabla_producto
    164.                                                                 .getValueAt(fila, 2)));
    165.                                 this.vista.__cantidad.setText(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
    166.                                                 .valueOf(this.vista.__tabla_producto
    167.                                                                 .getValueAt(fila, 3)));
    168.                         }
    169.  
    170.                         this.vista.__id_producto.setEditable(false);
    171.                 }
    172.         }
    173.  
    174.         @Override
    175.         public void mouseEntered(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login arg0) {
    176.                 // TODO Auto-generated method stub
    177.  
    178.         }
    179.  
    180.         @Override
    181.         public void mouseExited(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login arg0) {
    182.                 // TODO Auto-generated method stub
    183.  
    184.         }
    185.  
    186.         @Override
    187.         public void mousePressed(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login arg0) {
    188.                 // TODO Auto-generated method stub
    189.  
    190.         }
    191.  
    192.         @Override
    193.         public void mouseReleased(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login arg0) {
    194.                 // TODO Auto-generated method stub
    195.  
    196.         }
    197.  
    198. }
    199.  
    • El Modelo:
    Dentro del modelo crearemos dos clases Conexion y Modelo, la primera nos conectara a la base de datos y la segunda obtendrá la información necesaria de la misma.
    • Conexion
    Código: Java
    1. package modelo;
    2.  
    3. import java.io.ObjectInputStream.GetField;
    4. import java.sql.Connection;
    5. import java.sql.DriverManager;
    6. import java.sql.PreparedStatement;
    7. import java.sql.ResultSet;
    8. import java.sql.SQLException;
    9. /*
    10.  * LLeva a cabo la conexion con la base de datos.
    11.  */
    12. public class Conexion {
    13.  
    14.         /*
    15.          * Se declaran los atributos de la conexion.
    16.          */
    17.         private static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login usuario = "root";
    18.         private static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login password = "root";
    19.         private static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login baseDeDatos = "";
    20.         private static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login driver = "com.mysql.jdbc.Driver";
    21.         private static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login servidor = "jdbc:mysql://localhost/" + baseDeDatos;
    22.         private static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login conexion = null;
    23.  
    24.         /*
    25.          * Constructor sobrecargado permite configurar el acceso a cualquier DB especificando
    26.          * la tabla el usuario y la contraseña.
    27.          */
    28.         public Conexion(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login usuario, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login password, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login baseDeDatos) {
    29.                 setUsuario(usuario);
    30.                 setPassword(password);
    31.                 setBaseDeDatos(baseDeDatos);
    32.                 Conexion.servidor = "jdbc:mysql://localhost/" + getBaseDeDatos();
    33.  
    34.         }
    35.  
    36.         public Conexion() {
    37.  
    38.                 Conexion.servidor = "jdbc:mysql://localhost/" + getBaseDeDatos();
    39.  
    40.         }
    41.  
    42.         /*
    43.          * Metodo que se conecta y establece la conexion al servidor
    44.          */
    45.         void establecerConexion() {
    46.  
    47.                 try {
    48.                         Class.forName(driver); // Cargo el driver de MYSQL
    49.           conexion = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.getConnection(servidor, usuario, password); // Establezco la conexion
    50.                 } catch (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login | You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login excepcion) {
    51.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println("Error en la conexion trate incorporando\n El driver a su proyecto ");
    52.         }
    53.  
    54. }
    55.         /*
    56.          * Metodos GETTERS y SETTERS
    57.          */
    58.  
    59.         public static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getUsuario() {
    60.                 return usuario;
    61.         }
    62.  
    63.         public static void setUsuario(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login usuario) {
    64.                 Conexion.usuario = usuario;
    65.         }
    66.  
    67.         public static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getPassword() {
    68.                 return password;
    69.         }
    70.  
    71.         public static void setPassword(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login password) {
    72.                 Conexion.password = password;
    73.         }
    74.  
    75.         public static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getDriver() {
    76.                 return driver;
    77.         }
    78.  
    79.         public static void setDriver(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login driver) {
    80.                 Conexion.driver = driver;
    81.         }
    82.  
    83.         public static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getServidor() {
    84.                 return servidor;
    85.         }
    86.  
    87.         public static void setServidor(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login servidor) {
    88.                 Conexion.servidor = servidor;
    89.         }
    90.  
    91.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getConexion() {
    92.                 return conexion;
    93.         }
    94.  
    95.         public void setConexion(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login conexion) {
    96.                 Conexion.conexion = conexion;
    97.         }
    98.  
    99.         public static You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getBaseDeDatos() {
    100.                 return baseDeDatos;
    101.         }
    102.  
    103.         public static void setBaseDeDatos(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login baseDeDatos) {
    104.                 Conexion.baseDeDatos = baseDeDatos;
    105.         }
    106.  
    107. }
    108.  
    • Modelo
    Código: Java
    1. package modelo;
    2.  
    3. import javax.swing.table.DefaultTableModel;
    4. import javax.swing.*;
    5.  
    6. import java.sql.*;
    7. /*
    8.  * LLeva a cabo la logica del programa y le entrega los datos procesados
    9.  * a los niveles adyacentes
    10.  *
    11.  */
    12.  
    13. public class Modelo {
    14.         private Conexion conexionMYSQL;
    15.         private boolean res = false;
    16.         private boolean bandera = false;
    17.  
    18.         public Modelo() {
    19.                 conexionMYSQL = new Conexion("root", "root", "dbtest");
    20.                 //Se establece la base de datos y las claves de acceso para la conexion aL GESTOR MYSQL.
    21.         }
    22.  
    23.         //Metodo que retorna un DefaultTableModel permitiendo llenar la tabla del GUI.
    24.         public You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login getTablaProducto() {
    25.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login tablemodel = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login();
    26.                 int registros = 0;
    27.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[] columNames = { "ID", "Nomnbre", "Precio", "Cantidad" }; //Se establecen las columnas de la tabla
    28.                 // obtenemos la cantidad de registros existentes en la tabla y se
    29.                 // almacena en la variable "registros"
    30.                 // para formar la matriz de datos
    31.                 try {
    32.  
    33.                         conexionMYSQL.establecerConexion(); //Nos conectamos a la base de datos
    34.  
    35.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login pstm = conexionMYSQL.getConexion()
    36.                                         .prepareStatement("SELECT count(*) as total FROM producto");
    37.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login res = pstm.executeQuery();
    38.                         res.next();
    39.                         registros = res.getInt("total"); //Obtenemos el total de los registros para crear la matriz de objetos
    40.                         res.close();
    41.                 } catch (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e) {
    42.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.err.println(e.getMessage());
    43.                 }
    44.                 // se crea una matriz con tantas filas y columnas que necesite
    45.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[][] data = new You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[registros][4];
    46.                 try {
    47.                         // realizamos la consulta sql y llenamos los datos en la matriz
    48.                         // "Object[][] data"
    49.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login pstm = conexionMYSQL.getConexion()
    50.                                         .prepareStatement("SELECT * FROM producto");
    51.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login res = pstm.executeQuery();
    52.                         int i = 0;
    53.                         while (res.next()) {
    54.                                 data[i][0] = res.getString("p_id");
    55.                                 data[i][1] = res.getString("p_nombre");
    56.                                 data[i][2] = res.getString("p_precio");
    57.                                 data[i][3] = res.getString("p_cantidad");
    58.                                 i++;
    59.                         }
    60.                         res.close();
    61.                         // se añade la matriz de datos en el DefaultTableModel
    62.                         tablemodel.setDataVector(data, columNames);
    63.                 } catch (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e) {
    64.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.err.println(e.getMessage());
    65.                 }
    66.                 return tablemodel; //Retornamos la matriz de datos para que sea cargada en el evento "VER PRODUCTOS"
    67.         }
    68.  
    69.         //Metodo para editar/actualizar un registro
    70.         public boolean editarProducto(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login id, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login nombre, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login _precio,You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login _cantidad) {
    71.                 //Se valida el producto
    72.                 if (nombre.trim().length() > 0 && id.trim().length() > 0) {
    73.                         try {
    74.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login precio = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.parseDouble(_precio.replace(",", "."));
    75.  
    76.                                 int cantidad = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.parseInt(_cantidad);
    77.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login actualizar = "UPDATE  `producto` SET  `p_nombre` = ?,`p_precio` =  ?,`p_cantidad` =  ?  WHERE  `p_id` = ?";
    78.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login consulta = conexionMYSQL.getConexion()
    79.                                                 .prepareStatement(actualizar);
    80.                                 consulta.setString(1, nombre);
    81.                                 consulta.setDouble(2, precio);
    82.                                 consulta.setInt(3, cantidad);
    83.                                 consulta.setString(4, id);
    84.  
    85.                                 if (consulta.executeUpdate() == 1) {
    86.                                  //Si la consulta se ejecuto correctamente devolvemos verdadero
    87.  
    88.                                         bandera = true;
    89.                                 } else { //Sino devolvemos falso
    90.                                         bandera = false;
    91.                                 }
    92.                         } catch (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e) {
    93.  
    94.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println(e);
    95.                         }
    96.                 }
    97.                 return bandera;
    98.  
    99.         }
    100.  
    101.         //Metodo para eliminar un producto
    102.         public boolean EliminarProducto(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login id, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login nombre) {
    103.                 if (nombre.trim().length() > 0) { //Si se selecciono un registro se lo elimina
    104.  
    105.                         // se arma la consulta
    106.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login consultaSQL = " DELETE FROM producto WHERE  p_id='" + id
    107.                                         + "' ";
    108.                         // se ejecuta la consulta
    109.                         try {
    110.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login pstm = conexionMYSQL.getConexion()
    111.                                                 .prepareStatement(consultaSQL);
    112.                                 pstm.execute();
    113.                                 pstm.close();
    114.                                 res = true;
    115.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(null,
    116.                                                 "Registro eliminado correctamente!!");
    117.                         } catch (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e) {
    118.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.err.println(e.getMessage());
    119.                         }
    120.                 } else {  //Si no se selecciono un registro devuelve un error
    121.                         res = false;
    122.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.showMessageDialog(null,
    123.                                         "Debe seleccionar un registro!!", "Error",
    124.                                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.ERROR_MESSAGE);
    125.                 }
    126.                 return res;
    127.         }
    128.  
    129.         //Metodo que añade un producto a la base de datos
    130.         public boolean NuevoProducto(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login id, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login nombre, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login precio,
    131.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login cantidad) {
    132.                 if (valida_datos(id, nombre, precio, cantidad)) {
    133.                         // se reemplaza "," por "."
    134.                         precio = precio.replace(",", ".");
    135.                         // Se arma la consulta
    136.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login consulta = " INSERT INTO producto ( p_id , p_nombre , p_precio, p_cantidad  ) "
    137.                                         + "VALUES ( '"
    138.                                         + id
    139.                                         + "','"
    140.                                         + nombre
    141.                                         + "', '"
    142.                                         + precio
    143.                                         + "'," + cantidad + " ) ";
    144.                         // se ejecuta la consulta
    145.                         try {
    146.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login pstm = conexionMYSQL.getConexion()
    147.                                                 .prepareStatement(consulta);
    148.                                 pstm.execute();
    149.                                 pstm.close();
    150.                                 return true; // Solo si la consulta se ejecuto devuelve TRUE en
    151.                                                                 // los demas casos FALSE
    152.                         } catch (You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login e) {
    153.                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.err.println(e.getMessage());
    154.                         }
    155.                         return false;
    156.                 } else
    157.                         return false;
    158.         }
    159.  
    160.         //Valida que el ID,NOMBRE Y PRECION SEAN VALIDOS
    161.         private boolean valida_datos(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login id, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login nombre, You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login precio,
    162.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login cantidad) {
    163.                 if (id.equals("  -   ")) //Si el id es igual a - devuelve falso
    164.                         return false;
    165.                 else if (nombre.length() > 0 && precio.length() > 0
    166.                                 && cantidad.length() > 0) { //Si cumple la condicion  devuelve verdadero
    167.                         return true;
    168.                 } else   //Si ninguno de los dos cumple devuelve falso
    169.                         return false;
    170.         }
    171.  
    172. }
    173.  
      • Clase Ejecutable:
      Sera aquella que inicie la aplicacion e instancie al controlador con los objetos correspondientes.
      • Main
      Código: Java
      1. package ejecutable;
      2.  
      3. import controlador.Controlador;
      4. import modelo.Modelo;
      5. import vista.VentanaVista;
      6. import vista.VentanaVista2;
      7.  
      8. /*
      9.  * Main es la clase principal que se encarga de ejecutar y correr el programa
      10.  */
      11. public class Main {
      12.  
      13.         public static void main(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[] args) {
      14.                 VentanaVista2 vista2 = new VentanaVista2();
      15.                 VentanaVista vista = new VentanaVista();
      16.                 Modelo modelo = new Modelo();
      17.                 new Controlador(modelo, vista, vista2);
      18.           //Se pasa como parametro al controlador la vista y el modelo para que este los atienda.                                    
      19.  
      20.         }
      21.  
      22. }
      23.  

        Por ultimo solo tenemos que añadir el driver a nuestra aplicación y corrobar que todo ande bien.
        En eclipse: Click derecho en el proyecto Build Patch -> Configure Build Patch -> Libraries -> Add External Jars
                         

                                                   Proyecto andando:
                                                 


        Se pueden descargar la aplicacion desde aca -> You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
        « Última modificación: Octubre 04, 2014, 05:04:15 pm por Expermicid »
        Ser mejor cada día es mi meta

         =LKI=

        Desconectado Expermicid

        • *
        • Underc0der
        • Mensajes: 457
        • Actividad:
          0%
        • Reputación 0
        • _-Expermicid-_
          • Ver Perfil
        • Skype: expermicid.xd
        « Respuesta #1 en: Octubre 04, 2014, 04:37:25 pm »
        Buenísimo LKI. Yo he utilizado java y postgres.

        Después  ponle a las etiquetas code el  '=java' asi colorea las palabras

        Saludos

        Desconectado LKI

        • *
        • Underc0der
        • Mensajes: 59
        • Actividad:
          0%
        • Reputación 0
        • |Un día sin aprender nada, es un día perdido..|
          • Ver Perfil
          • Email
        « Respuesta #2 en: Octubre 04, 2014, 04:38:58 pm »
        Ok ahora lo edito gracias :)
        Ser mejor cada día es mi meta

         =LKI=

        Conectado ANTRAX

        • *
        • Administrator
        • Mensajes: 5283
        • Actividad:
          35%
        • Reputación 28
        • ANTRAX
          • Ver Perfil
          • Underc0de
          • Email
        • Skype: underc0de.org
        • Twitter: @Underc0de
        « Respuesta #3 en: Octubre 04, 2014, 05:17:31 pm »
        Muy bueno bro!! Se ve excelente!
        Te dare +1

        Saludos!
        ANTRAX


        Conectado Gabriela

        • *
        • Co Admin
        • Mensajes: 826
        • Actividad:
          16.67%
        • Reputación 14
          • Ver Perfil
          • Email
        « Respuesta #4 en: Octubre 05, 2014, 12:19:40 am »

        !Gracias, por tu contribución a la comunidad.!
         :-*

        G.

        Desconectado facufangio

        • *
        • Underc0der
        • Mensajes: 152
        • Actividad:
          0%
        • Reputación 0
        • < SE SIEMPRE EL MEJOR, PERO NO TE LO CREAS />
          • Ver Perfil
          • Email
        « Respuesta #5 en: Octubre 05, 2014, 11:49:26 am »
        Muy bueno LKI, me gusto mucho.

        GRACIAS POR TU APORTE!!!


        Saludos

        Desconectado Naab

        • *
        • Underc0der
        • Mensajes: 74
        • Actividad:
          0%
        • Reputación 0
          • Ver Perfil
          • Email
        « Respuesta #6 en: Octubre 05, 2014, 07:03:03 pm »
        No funciona, tendré que hacer algunos ajustes pero no se mucho java.

        Desconectado LKI

        • *
        • Underc0der
        • Mensajes: 59
        • Actividad:
          0%
        • Reputación 0
        • |Un día sin aprender nada, es un día perdido..|
          • Ver Perfil
          • Email
        « Respuesta #7 en: Octubre 05, 2014, 09:27:46 pm »


        You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
        No funciona, tendré que hacer algunos ajustes pero no se mucho java.

        Naab decime en que parte no te funciona o cual es el problema que tenes así te ayudo.

        PD:
         
        Gracias a todos por comentar, sus comentarios y las visitas me ayudan a crecer y me dan confianza para seguir aportando en esta comunidad tan hermosa como es underc0de!.
        Ser mejor cada día es mi meta

         =LKI=

        Desconectado blackdrake

        • *
        • Co Admin
        • Mensajes: 1881
        • Actividad:
          23.33%
        • Reputación 14
          • Ver Perfil
        « Respuesta #8 en: Octubre 06, 2014, 06:21:49 am »
        Muy bueno LKI, estoy seguro de que si se hace bien funcionará perfectamente.

        Gracias por el aporte.

        Un saludo.



         

        ¿Te gustó el post? COMPARTILO!



        [Tutorial] Peticiones AJAX a Servlets

        Iniciado por Gus Garsaky

        Respuestas: 4
        Vistas: 3547
        Último mensaje Abril 11, 2015, 06:26:34 pm
        por Gabriela
        [Tutorial] JPA 2.1 - Parte I

        Iniciado por Gus Garsaky

        Respuestas: 1
        Vistas: 2153
        Último mensaje Abril 10, 2015, 09:49:19 am
        por Gus Garsaky
        Tutorial de Bluej

        Iniciado por Expermicid

        Respuestas: 3
        Vistas: 1773
        Último mensaje Agosto 02, 2013, 12:30:04 am
        por Flemon
        [Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

        Iniciado por graphixx

        Respuestas: 3
        Vistas: 1394
        Último mensaje Febrero 23, 2015, 10:13:28 am
        por Hu3c0
        Como compilar programas Java en la consola de comandos de Windows

        Iniciado por tar3kw0rm3d

        Respuestas: 2
        Vistas: 2096
        Último mensaje Junio 04, 2013, 02:55:07 pm
        por tar3kw0rm3d