Advertisement
Guest User

Untitled

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