SHARE
TWEET

Untitled

a guest Jan 22nd, 2020 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.sql.*;
  2. import static java.lang.System.exit;
  3. import java.util.Scanner;
  4. import java.util.logging.Level;
  5. import java.util.logging.Logger;
  6.  
  7. public class Main {
  8.  
  9.     public static void main(String[] args) /*throws SQLException*/ {
  10.         try {
  11.             Class.forName("com.mysql.jdbc.Driver");
  12.         } catch (ClassNotFoundException ex) {
  13.             System.out.println("Librearía no cargada");
  14.             exit(1);
  15.         }
  16.         Connection con = null;
  17.         Statement sentencia = null;
  18.         ResultSet rs = null;
  19.         int n = 0;
  20.         //Comienza programa para fomar la sentencia
  21.         while (n != 99) {
  22.             System.out.println("1. Insertar");
  23.             System.out.println("2. Consultar");
  24.             System.out.println("");
  25.             System.out.println("99. SALIR DEL PROGRAMA");
  26.             System.out.println("");
  27.             System.out.print("   Selecciona opción: ");
  28.  
  29.             n = (new Scanner(System.in).nextInt());
  30.             switch (n) {
  31.                 case 1:
  32.                     while (n != 3) {
  33.                         System.out.println("");
  34.                         System.out.println("1. Insertar Empleado");
  35.                         System.out.println("2. Insertar Oficina");
  36.                         System.out.println("3. ATRÁS");
  37.                         System.out.println("");
  38.                         System.out.print("   Selecciona opción: ");
  39.                         System.out.println("");
  40.                         n = (new Scanner(System.in).nextInt());
  41.                         switch (n) {
  42.                             case 1:
  43.                                 System.out.print("Introduzca número de empleado a insertar: ");
  44.                                 int numemp = (new Scanner(System.in).nextInt());
  45.                                 if (existeEmpleado(numemp)) {
  46.                                     System.out.println("El empleado ya existe en la BD");
  47.                                     System.out.println("");
  48.                                 } else {
  49.                                     System.out.print("Introduzca nombre: ");
  50.                                     String nombre = (new Scanner(System.in).nextLine());
  51.                                     System.out.print("Introduzca edad: ");
  52.                                     int edad = (new Scanner(System.in).nextInt());
  53.                                     System.out.print("Introduzca la oficina: ");
  54.                                     int oficina = (new Scanner(System.in).nextInt());
  55.                                     String sql = "INSERT INTO empleados (numemp, nombre, edad, oficina) VALUES (" + numemp + ", '" + nombre + "', " + edad + ", " + oficina + ");";
  56.                                     System.out.println(sql);
  57.                                     con = conecta();
  58.                                     ejecutaUpdate(con, sql);
  59.                                     System.out.println("HECHO. Empleado insertado.");
  60.                                 }
  61.                                 break;
  62.  
  63.                             case 2:
  64.                                 System.out.print("Introduzca número de oficina a insertar: ");
  65.                                 int oficina = (new Scanner(System.in).nextInt());
  66.                                 if (existeOficina(oficina)) {
  67.                                     System.out.println("La oficina ya existe en la BD");
  68.                                     System.out.println("");
  69.                                 } else {
  70.                                     System.out.print("Introduzca ciudad: ");
  71.                                     String ciudad = (new Scanner(System.in).nextLine());
  72.                                     System.out.print("Introduzca región: ");
  73.                                     String region = (new Scanner(System.in).nextLine());
  74.                                    
  75.                                     String sql = "INSERT INTO oficinas (oficina, ciudad, region) VALUES (" + oficina + ", '" + ciudad + "', '" + region + "');";
  76.                                     System.out.println(sql);
  77.                                     con = conecta();
  78.                                     ejecutaUpdate(con, sql);
  79.                                     System.out.println("HECHO. Oficina insertada.");
  80.                                 }
  81.                                 break;
  82.                             case 3:
  83.                                 break;
  84.                         }
  85.                     }
  86.  
  87.                 case 2:
  88.                     System.out.println("");
  89.                         System.out.println("1. Consultar Empleado");
  90.                         System.out.println("2. Consultar Oficina");
  91.                         System.out.println("3. ATRÁS");
  92.                         System.out.println("");
  93.                         System.out.print("   Selecciona opción: ");
  94.                         n = (new Scanner(System.in).nextInt());
  95.  
  96.                         break;
  97.                 default: break;
  98.             }
  99.         }
  100.         System.out.println("FIN DEL PROGRAMA");
  101.     }
  102.  
  103.     /* Abre una conexión con la BD y devuelve el objeto */
  104.     private static Connection conecta() {
  105.         Connection con = null; //objeto con la conexión
  106.  
  107.         try {
  108.             // Realizamos la conexión
  109.             con = DriverManager.getConnection("jdbc:mysql://localhost/Empresa", "root", "Per12345"); //modificar usuario/contraseña segúnnuestra BD
  110.             // Ok: avisamos
  111.             System.out.println("Conectados...");
  112.  
  113.         } catch (Exception e) {
  114.             System.out.println("Error de conexión");
  115.         }
  116.  
  117.         return con;
  118.     }
  119.  
  120.     /* En la conexión pasada ejecuta la sentencia sql (que debe ser un SELECT)
  121.  * Devuelve el resultado de la consulta como un ResultSet */
  122.     static ResultSet ejecuta(Connection con, String sql) {
  123.         ResultSet rs = null;
  124.  
  125.         Statement sentencia;
  126.         try {
  127.             sentencia = con.createStatement();
  128.             rs = sentencia.executeQuery(sql);
  129.  
  130.         } catch (SQLException ex) {
  131.             System.out.println("Error SQL");
  132.         }
  133.  
  134.         return rs;
  135.     }
  136.  
  137.     /* En la conexión pasada ejecuta la sentencia sql (que debe ser un UPDATE, INSERT o DELETE)
  138.  * En este caso no se devuelve nada. */
  139.     static void ejecutaUpdate(Connection con, String sql) {
  140.         Statement sentencia;
  141.  
  142.         try {
  143.             sentencia = con.createStatement();
  144.             sentencia.executeUpdate(sql);
  145.  
  146.         } catch (SQLException ex) {
  147.             System.out.println("Error SQL");
  148.         }
  149.     }
  150.  
  151.     /* Comprueba si en la BD existe el empleado con el numemp pasado como parámetro */
  152.     static boolean existeEmpleado(int numemp) {
  153.         boolean existe = false;
  154.         try {
  155.             Connection con = conecta();
  156.             ResultSet rs = ejecuta(con, "SELECT * FROM Empleados WHERE numemp = " + numemp + ";");
  157.  
  158.             if (rs.next()) {
  159.                 existe = true;
  160.             }
  161.             con.close();
  162.  
  163.         } catch (SQLException ex) {
  164.             System.out.println("Error de ResultSet");
  165.         }
  166.         return existe;
  167.     }
  168.  
  169.     /* Comprueba si en la BD existe la oficina con el número de oficina pasado como parámetro */
  170.     static boolean existeOficina(int oficina) {
  171.         boolean existe = false;
  172.         try {
  173.             Connection con = conecta();
  174.             ResultSet rs = ejecuta(con, "SELECT * FROM Oficinas WHERE oficina = " + oficina + ";");
  175.  
  176.             if (rs.next()) {
  177.                 existe = true;
  178.             }
  179.             con.close();
  180.  
  181.         } catch (SQLException ex) {
  182.             System.out.println("Error ResultSet");
  183.         }
  184.         return existe;
  185.     }
  186.  
  187. // Función de ejemplo que muestra las oficinas que pertenecen a una región (norte, sur, ...)
  188.     private static void oficinasRegion() {
  189.  
  190.         //pedimos los datos
  191.         System.out.println("Region?");
  192.         String region = new Scanner(System.in).nextLine();
  193.  
  194.         //creamos la sentencia sql que nos interesa
  195.         String sql = "SELECT * FROM Oficinas "
  196.                 + "Where region='" + region + "';";
  197.  
  198.         Connection con = conecta(); //creamos la conexión
  199.         ResultSet rs = ejecuta(con, sql); //ejecutamos
  200.         try {
  201.             //recorremos el ResultSet y mostramos los datos
  202.             while (rs.next()) {
  203.                 String res = rs.getString("oficina") + ", "
  204.                         + rs.getString("ciudad") + ", "
  205.                         + rs.getString("region") + ", "
  206.                         + rs.getString("dir") + ", "
  207.                         + rs.getString("ventas");
  208.                 System.out.println(res);
  209.             }
  210.             //cerramos la conexión
  211.             con.close();
  212.         } catch (SQLException ex) {
  213.             System.out.println("Error de SQL");
  214.         }
  215.  
  216.     }
  217.  
  218. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top