10.1 SOLUCION

Aqui esta la solucion al ejercicio anterior propuesto.

 

El codigo en una sola clase llamada "Operarios" es el siguiente:

 

***********************************************************************************************************

 

import java.util.Scanner;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
 
public class Operarios {
    
    private Connection conexion = null;
    private Statement st = null;
    private ResultSet rs = null;
 
    public void Conectar(){
        try{
            Class.forName("com.mysql.jdbc.Driver");
            String ruta = "jdbc:mysql://localhost:3306/minicursojava";
            conexion = DriverManager.getConnection(ruta,"root","root");
            st = conexion.createStatement();
        }catch(Exception ex){
            System.out.println("Error de conexion | "+ex.getMessage());
        }
    }
    
    public static void main(String[]args){
        
        Scanner scan = new Scanner(System.in);
 
        String opcion;
        
        do{
            System.out.println("1. Nuevo operario");
            System.out.println("2. Ver todos los operarios");
            System.out.println("3. Buscar operario");
            System.out.println("4. Salir");
            System.out.print("Elige opcion: ");
            opcion = scan.next();
            
            Operarios op = new Operarios();
            
            switch(Integer.parseInt(opcion)){
                case 1:
                    String nombre;
                    String correo;
                    double sueldo;
                    System.out.print("Ingresa el nombre del operario: ");
                    nombre = scan.next();
                    System.out.print("Ingresa el correo del operario: ");
                    correo = scan.next();
                    System.out.print("Ingresa el sueldo del operario: ");
                    sueldo = scan.nextDouble();
                    try{
                        op.Conectar();
                        String sql = "INSERT INTO tablacurso (nombre, correo, sueldo)";
                            sql += " VALUES ('"+nombre+"','"+correo+"','"+sueldo+"')";
                        op.st.execute(sql);
                        System.out.println("\nOperario ingresado satisfactoriamente!!\n");
                    }catch(Exception ex){
                        System.out.println("Error en el ingreso | "+ex.getMessage());
                    }finally{
                        try{
                            op.conexion.close();
                            op.st.close();
                        }catch(Exception ex){}
                    }
                    break;
                case 2:
                    System.out.println("\nListado de operarios.\n");
                    try{
                        op.Conectar();
                        String sql = "SELECT * FROM tablacurso";
                        op.rs = op.st.executeQuery(sql);
                        
                        while(op.rs.next()){
                            System.out.println("Nombre: "+op.rs.getString("nombre"));
                            System.out.println("Correo: "+op.rs.getString("correo"));
                            System.out.println("Sueldo: "+op.rs.getString("sueldo"));
                            System.out.println("********************************");
                        }
                    }catch(Exception ex){
                        System.out.println("Error en la recuperacion de datos | "+ex.getMessage());
                    }finally{
                        try{
                            op.conexion.close();
                            op.st.close();
                            op.rs.close();
                        }catch(Exception ex){}
                    }
                    break;
                case 3:
                    String bnombre;
                    System.out.print("Escribe el nombre del operario a buscar: ");
                    bnombre = scan.next();
                    System.out.println("\nBusquedas de operarios.\n");
                    try{
                        op.Conectar();
                        String sql = "SELECT * FROM tablacurso WHERE nombre = '"+bnombre+"'";
                        op.rs = op.st.executeQuery(sql);
                        
                        while(op.rs.next()){
                            if(op.rs.getString("nombre").equalsIgnoreCase(bnombre)){
                                System.out.println("Nombre: "+op.rs.getString("nombre"));
                                System.out.println("Correo: "+op.rs.getString("correo"));
                                System.out.println("Sueldo: "+op.rs.getString("sueldo"));
                                System.out.println("********************************");
                            }else{
                                System.out.println("\nNo existe ningun operario con este nombre!\n");
                            }
                            
                        }
                    }catch(Exception ex){
                        System.out.println("Error en la busqueda de datos | "+ex.getMessage());
                    }finally{
                        try{
                            op.conexion.close();
                            op.st.close();
                            op.rs.close();
                        }catch(Exception ex){}
                    }
                    break;
                case 4:
                    System.out.println("Has salido de la aplicacion!!");
                    break;
            }
        }while(Integer.parseInt(opcion)!=4);
        
    }
    
}
 
***************************************************************************************************
 
Este ejercicio, practicamente lo has aprendido en el mini-curso anterior, pero esta vez has trabajado con bases de datos.
 
Fijate bien en este trozo de codigo:
 
String sql = "INSERT INTO tablacurso (nombre, correo, sueldo)";
           sql += " VALUES ('"+nombre+"','"+correo+"','"+sueldo+"')";
 
Hemos dividido la sentencia SQL en dos para no hacer el codigo tan largo en una sola linea y lo hemos conseguido con los operadores "+=". Pero fijate bien que entre las " y la V, hay un espacio, mira bien estos detalles, porque si no hubiesemos puesto este espacio el codigo daria error. Ponemos este espacio, porque si juntamos la sentencia SQL de arriba con la de abajo, obviamente debe de haber un espacio.