[JAVA][MYSQL] Tutorial Basico

  • 8 Respuestas
  • 5312 Vistas

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

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 78
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email

[JAVA][MYSQL] Tutorial Basico

  • 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 JDialog {
    10.    public JTextField txtID;
    11.    public JTextField txtNombre;
    12.    public JTextField txtPrecio;
    13.    public JTextField txtCantidad;
    14.    public JButton 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.       JLabel id_producto = new JLabel("id_producto");
    31.       id_producto.setFont(new Font("Tahoma", Font.PLAIN, 13));
    32.       id_producto.setBounds(10, 11, 75, 14);
    33.       getContentPane().add(id_producto);
    34.  
    35.       JLabel nombre_producto = new JLabel("Nombre");
    36.       nombre_producto.setFont(new Font("Tahoma", Font.PLAIN, 13));
    37.       nombre_producto.setBounds(10, 36, 75, 14);
    38.       getContentPane().add(nombre_producto);
    39.  
    40.       JLabel precio_producto = new JLabel("Precio");
    41.       precio_producto.setFont(new Font("Tahoma", Font.PLAIN, 13));
    42.       precio_producto.setBounds(10, 61, 75, 14);
    43.       getContentPane().add(precio_producto);
    44.  
    45.       JLabel cantidad_producto = new JLabel("Cantidad");
    46.       cantidad_producto.setFont(new Font("Tahoma", Font.PLAIN, 13));
    47.       cantidad_producto.setBounds(10, 86, 75, 14);
    48.       getContentPane().add(cantidad_producto);
    49.  
    50.       txtID = new JTextField();
    51.       txtID.setBounds(95, 9, 86, 20);
    52.       getContentPane().add(txtID);
    53.       txtID.setColumns(10);
    54.  
    55.       txtNombre = new JTextField();
    56.       txtNombre.setColumns(10);
    57.       txtNombre.setBounds(95, 34, 86, 20);
    58.       getContentPane().add(txtNombre);
    59.  
    60.       txtPrecio = new JTextField();
    61.       txtPrecio.setColumns(10);
    62.       txtPrecio.setBounds(95, 59, 86, 20);
    63.       getContentPane().add(txtPrecio);
    64.  
    65.       txtCantidad = new JTextField();
    66.       txtCantidad.setColumns(10);
    67.       txtCantidad.setBounds(95, 84, 86, 20);
    68.       getContentPane().add(txtCantidad);
    69.  
    70.       aceptar = new JButton("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 ActionListener, MouseListener {
    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 DefaultTableModel());
    52.       this.vista.setLocationRelativeTo(null); // Centramos la aplicacion
    53.  
    54.    }
    55.  
    56.  
    57.    @Override
    58.    public void actionPerformed(ActionEvent 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.          JOptionPane.showMessageDialog(this.vista,
    96.                "Modificiado y adaptado de http://www.jc-mouse.net/",
    97.                "Creditos", JOptionPane.INFORMATION_MESSAGE);
    98.  
    99.          break;
    100.       case "editarProductos":
    101.  
    102.          String id = this.vista.__id_producto.getText();
    103.          String nombre = this.vista.__nombre.getText();
    104.          String precio = this.vista.__precio.getText();
    105.          String 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.             JOptionPane.showMessageDialog(vista,
    115.                   "Registro agregado correctamente!!");
    116.          } else {
    117.             JOptionPane.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.             JOptionPane.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.             JOptionPane.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(MouseEvent 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(String
    157.                   .valueOf(this.vista.__tabla_producto
    158.                         .getValueAt(fila, 0)));
    159.             this.vista.__nombre.setText(String
    160.                   .valueOf(this.vista.__tabla_producto
    161.                         .getValueAt(fila, 1)));
    162.             this.vista.__precio.setText(String
    163.                   .valueOf(this.vista.__tabla_producto
    164.                         .getValueAt(fila, 2)));
    165.             this.vista.__cantidad.setText(String
    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(MouseEvent arg0) {
    176.       // TODO Auto-generated method stub
    177.  
    178.    }
    179.  
    180.    @Override
    181.    public void mouseExited(MouseEvent arg0) {
    182.       // TODO Auto-generated method stub
    183.  
    184.    }
    185.  
    186.    @Override
    187.    public void mousePressed(MouseEvent arg0) {
    188.       // TODO Auto-generated method stub
    189.  
    190.    }
    191.  
    192.    @Override
    193.    public void mouseReleased(MouseEvent 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 String usuario = "root";
    18.    private static String password = "root";
    19.    private static String baseDeDatos = "";
    20.    private static String driver = "com.mysql.jdbc.Driver";
    21.    private static String servidor = "jdbc:mysql://localhost/" + baseDeDatos;
    22.    private static Connection 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(String usuario, String password, String 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 = DriverManager.getConnection(servidor, usuario, password); // Establezco la conexion
    50.       } catch (ClassNotFoundException | SQLException excepcion) {
    51.          System.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 String getUsuario() {
    60.       return usuario;
    61.    }
    62.  
    63.    public static void setUsuario(String usuario) {
    64.       Conexion.usuario = usuario;
    65.    }
    66.  
    67.    public static String getPassword() {
    68.       return password;
    69.    }
    70.  
    71.    public static void setPassword(String password) {
    72.       Conexion.password = password;
    73.    }
    74.  
    75.    public static String getDriver() {
    76.       return driver;
    77.    }
    78.  
    79.    public static void setDriver(String driver) {
    80.       Conexion.driver = driver;
    81.    }
    82.  
    83.    public static String getServidor() {
    84.       return servidor;
    85.    }
    86.  
    87.    public static void setServidor(String servidor) {
    88.       Conexion.servidor = servidor;
    89.    }
    90.  
    91.    public Connection getConexion() {
    92.       return conexion;
    93.    }
    94.  
    95.    public void setConexion(Connection conexion) {
    96.       Conexion.conexion = conexion;
    97.    }
    98.  
    99.    public static String getBaseDeDatos() {
    100.       return baseDeDatos;
    101.    }
    102.  
    103.    public static void setBaseDeDatos(String 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 DefaultTableModel getTablaProducto() {
    25.       DefaultTableModel tablemodel = new DefaultTableModel();
    26.       int registros = 0;
    27.       String[] 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.          PreparedStatement pstm = conexionMYSQL.getConexion()
    36.                .prepareStatement("SELECT count(*) as total FROM producto");
    37.          ResultSet 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 (SQLException e) {
    42.          System.err.println(e.getMessage());
    43.       }
    44.       // se crea una matriz con tantas filas y columnas que necesite
    45.       Object[][] data = new String[registros][4];
    46.       try {
    47.          // realizamos la consulta sql y llenamos los datos en la matriz
    48.          // "Object[][] data"
    49.          PreparedStatement pstm = conexionMYSQL.getConexion()
    50.                .prepareStatement("SELECT * FROM producto");
    51.          ResultSet 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 (SQLException e) {
    64.          System.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(String id, String nombre, String _precio,String _cantidad) {
    71.       //Se valida el producto
    72.       if (nombre.trim().length() > 0 && id.trim().length() > 0) {
    73.          try {
    74.             Double precio = Double.parseDouble(_precio.replace(",", "."));
    75.  
    76.             int cantidad = Integer.parseInt(_cantidad);
    77.             String actualizar = "UPDATE  `producto` SET  `p_nombre` = ?,`p_precio` =  ?,`p_cantidad` =  ?  WHERE  `p_id` = ?";
    78.             PreparedStatement 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 (SQLException e) {
    93.  
    94.             System.out.println(e);
    95.          }
    96.       }
    97.       return bandera;
    98.  
    99.    }
    100.  
    101.    //Metodo para eliminar un producto
    102.    public boolean EliminarProducto(String id, String nombre) {
    103.       if (nombre.trim().length() > 0) { //Si se selecciono un registro se lo elimina
    104.  
    105.          // se arma la consulta
    106.          String consultaSQL = " DELETE FROM producto WHERE  p_id='" + id
    107.                + "' ";
    108.          // se ejecuta la consulta
    109.          try {
    110.             PreparedStatement pstm = conexionMYSQL.getConexion()
    111.                   .prepareStatement(consultaSQL);
    112.             pstm.execute();
    113.             pstm.close();
    114.             res = true;
    115.             JOptionPane.showMessageDialog(null,
    116.                   "Registro eliminado correctamente!!");
    117.          } catch (SQLException e) {
    118.             System.err.println(e.getMessage());
    119.          }
    120.       } else {  //Si no se selecciono un registro devuelve un error
    121.          res = false;
    122.          JOptionPane.showMessageDialog(null,
    123.                "Debe seleccionar un registro!!", "Error",
    124.                JOptionPane.ERROR_MESSAGE);
    125.       }
    126.       return res;
    127.    }
    128.  
    129.    //Metodo que añade un producto a la base de datos
    130.    public boolean NuevoProducto(String id, String nombre, String precio,
    131.          String cantidad) {
    132.       if (valida_datos(id, nombre, precio, cantidad)) {
    133.          // se reemplaza "," por "."
    134.          precio = precio.replace(",", ".");
    135.          // Se arma la consulta
    136.          String 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.             PreparedStatement 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 (SQLException e) {
    153.             System.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(String id, String nombre, String precio,
    162.          String 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(String[] 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 -> https://www.dropbox.com/s/e0fpo6fu3uuuva8/tutoUndercode.rar?dl=0
        « Última modificación: Octubre 04, 2014, 05:04:15 pm por Expermicid »
        Ser mejor cada día es mi meta

         =LKI=

        Desconectado Expermicid

        • *
        • Ex-Staff
        • *****
        • Mensajes: 463
        • Actividad:
          23.33%
        • Reputación 0
        • _-Expermicid-_
        • Skype: expermicid.xd
          • Ver Perfil

        Re:[JAVA][MYSQL] Tutorial Basico

        • 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: 78
        • Actividad:
          0%
        • Reputación 0
        • |Un día sin aprender nada, es un día perdido..|
          • Ver Perfil
          • Email

        Re:[JAVA][MYSQL] Tutorial Basico

        • 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: 5704
        • Actividad:
          23.33%
        • Country: ar
        • Reputación 37
        • ANTRAX
        • Skype: underc0de.org
        • Twitter: @Underc0de
          • Ver Perfil
          • Underc0de
          • Email

        Re:[JAVA][MYSQL] Tutorial Basico

        • en: Octubre 04, 2014, 05:17:31 pm
        Muy bueno bro!! Se ve excelente!
        Te dare +1

        Saludos!
        ANTRAX


        Conectado Gabriela

        • *
        • Co Admin
        • Mensajes: 992
        • Actividad:
          33.33%
        • Country: 00
        • Reputación 22
        • A las personas se las conoce por sus heridas...
          • Ver Perfil
          • Hirana: red de IRC
          • Email

        Re:[JAVA][MYSQL] Tutorial Basico

        • en: Octubre 05, 2014, 12:19:40 am

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

        G.

        Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

        Desconectado Ruleman

        • *
        • Ex-Staff
        • *****
        • Mensajes: 210
        • Actividad:
          3.33%
        • Country: 00
        • Reputación 5
        • ex facufangio
          • Ver Perfil

        Re:[JAVA][MYSQL] Tutorial Basico

        • 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

        Re:[JAVA][MYSQL] Tutorial Basico

        • en: Octubre 05, 2014, 07:03:03 pm
        No funciona, tendré que hacer algunos ajustes pero no se mucho java.

        Desconectado LKI

        • *
        • Underc0der
        • Mensajes: 78
        • Actividad:
          0%
        • Reputación 0
        • |Un día sin aprender nada, es un día perdido..|
          • Ver Perfil
          • Email

        Re:[JAVA][MYSQL] Tutorial Basico

        • en: Octubre 05, 2014, 09:27:46 pm


        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: 1968
        • Actividad:
          3.33%
        • Country: es
        • Reputación 16
          • Ver Perfil

        Re:[JAVA][MYSQL] Tutorial Basico

        • 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.


         

        [Video Curso] Iniciacion a Java por DesarrolloWeb y EscuelaIT Mayo 2014

        Iniciado por graphixx

        Respuestas: 3
        Vistas: 3936
        Último mensaje Febrero 23, 2015, 10:13:28 am
        por Hu3c0
        [Tutorial] Peticiones AJAX a Servlets

        Iniciado por Gus Garsaky

        Respuestas: 4
        Vistas: 8632
        Último mensaje Abril 11, 2015, 06:26:34 pm
        por Gabriela
        Como compilar programas Java en la consola de comandos de Windows

        Iniciado por tar3kw0rm3d

        Respuestas: 2
        Vistas: 4248
        Último mensaje Junio 04, 2013, 02:55:07 pm
        por tar3kw0rm3d
        Cheat-Sheet: JAVA - Hoja Guía para que no se me olvide

        Iniciado por Denisse

        Respuestas: 1
        Vistas: 667
        Último mensaje Julio 21, 2020, 12:43:49 pm
        por DevCode
        Java Extremo [Video Cursos Completos] [Español] [ISO] 2009

        Iniciado por graphixx

        Respuestas: 9
        Vistas: 9854
        Último mensaje Diciembre 04, 2017, 02:36:34 am
        por graphixx