Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.*;
- import static java.lang.System.exit;
- import java.util.Scanner;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class Main {
- public static void main(String[] args) /*throws SQLException*/ {
- try {
- Class.forName("com.mysql.jdbc.Driver");
- } catch (ClassNotFoundException ex) {
- System.out.println("Librearía no cargada");
- exit(1);
- }
- Connection con = null;
- Statement sentencia = null;
- ResultSet rs = null;
- int n = 0;
- //Comienza programa para fomar la sentencia
- while (n != 99) {
- System.out.println("1. Insertar");
- System.out.println("2. Consultar");
- System.out.println("");
- System.out.println("99. SALIR DEL PROGRAMA");
- System.out.println("");
- System.out.print(" Selecciona opción: ");
- n = (new Scanner(System.in).nextInt());
- boolean volver = false;
- switch (n) {
- case 1:
- while (n != 3) {
- System.out.println("");
- System.out.println("1. Insertar Empleado");
- System.out.println("2. Insertar Oficina");
- System.out.println("3. ATRÁS");
- System.out.println("");
- System.out.print(" Selecciona opción: ");
- System.out.println("");
- n = (new Scanner(System.in).nextInt());
- switch (n) {
- case 1:
- System.out.print("Introduzca número de empleado a insertar: ");
- int numemp = (new Scanner(System.in).nextInt());
- if (existeEmpleado(numemp)) {
- System.out.println("El empleado ya existe en la BD");
- System.out.println("");
- } else {
- System.out.print("Introduzca nombre: ");
- String nombre = (new Scanner(System.in).nextLine());
- System.out.print("Introduzca edad: ");
- int edad = (new Scanner(System.in).nextInt());
- System.out.print("Introduzca la oficina: ");
- int oficina = (new Scanner(System.in).nextInt());
- String sql = "INSERT INTO empleados (numemp, nombre, edad, oficina) VALUES (" + numemp + ", '" + nombre + "', " + edad + ", " + oficina + ");";
- System.out.println(sql);
- con = conecta();
- ejecutaUpdate(con, sql);
- System.out.println("HECHO. Empleado insertado.");
- }
- break;
- case 2:
- System.out.print("Introduzca número de oficina a insertar: ");
- int oficina = (new Scanner(System.in).nextInt());
- if (existeOficina(oficina)) {
- System.out.println("La oficina ya existe en la BD");
- System.out.println("");
- } else {
- System.out.print("Introduzca ciudad: ");
- String ciudad = (new Scanner(System.in).nextLine());
- System.out.print("Introduzca región: ");
- String region = (new Scanner(System.in).nextLine());
- String sql = "INSERT INTO oficinas (oficina, ciudad, region) VALUES (" + oficina + ", '" + ciudad + "', '" + region + "');";
- System.out.println(sql);
- con = conecta();
- ejecutaUpdate(con, sql);
- System.out.println("HECHO. Oficina insertada.");
- }
- break;
- case 3:
- volver = true;
- break;
- }
- }
- case 2:
- if(volver) {
- break;
- }
- System.out.println("");
- System.out.println("1. Consultar Empleado");
- System.out.println("2. Consultar Oficina");
- System.out.println("3. ATRÁS");
- System.out.println("");
- System.out.print(" Selecciona opción: ");
- n = (new Scanner(System.in).nextInt());
- break;
- default: break;
- }
- }
- System.out.println("FIN DEL PROGRAMA");
- }
- /* Abre una conexión con la BD y devuelve el objeto */
- private static Connection conecta() {
- Connection con = null; //objeto con la conexión
- try {
- // Realizamos la conexión
- con = DriverManager.getConnection("jdbc:mysql://localhost/Empresa", "root", "Per12345"); //modificar usuario/contraseña segúnnuestra BD
- // Ok: avisamos
- System.out.println("Conectados...");
- } catch (Exception e) {
- System.out.println("Error de conexión");
- }
- return con;
- }
- /* En la conexión pasada ejecuta la sentencia sql (que debe ser un SELECT)
- * Devuelve el resultado de la consulta como un ResultSet */
- static ResultSet ejecuta(Connection con, String sql) {
- ResultSet rs = null;
- Statement sentencia;
- try {
- sentencia = con.createStatement();
- rs = sentencia.executeQuery(sql);
- } catch (SQLException ex) {
- System.out.println("Error SQL");
- }
- return rs;
- }
- /* En la conexión pasada ejecuta la sentencia sql (que debe ser un UPDATE, INSERT o DELETE)
- * En este caso no se devuelve nada. */
- static void ejecutaUpdate(Connection con, String sql) {
- Statement sentencia;
- try {
- sentencia = con.createStatement();
- sentencia.executeUpdate(sql);
- } catch (SQLException ex) {
- System.out.println("Error SQL");
- }
- }
- /* Comprueba si en la BD existe el empleado con el numemp pasado como parámetro */
- static boolean existeEmpleado(int numemp) {
- boolean existe = false;
- try {
- Connection con = conecta();
- ResultSet rs = ejecuta(con, "SELECT * FROM Empleados WHERE numemp = " + numemp + ";");
- if (rs.next()) {
- existe = true;
- }
- con.close();
- } catch (SQLException ex) {
- System.out.println("Error de ResultSet");
- }
- return existe;
- }
- /* Comprueba si en la BD existe la oficina con el número de oficina pasado como parámetro */
- static boolean existeOficina(int oficina) {
- boolean existe = false;
- try {
- Connection con = conecta();
- ResultSet rs = ejecuta(con, "SELECT * FROM Oficinas WHERE oficina = " + oficina + ";");
- if (rs.next()) {
- existe = true;
- }
- con.close();
- } catch (SQLException ex) {
- System.out.println("Error ResultSet");
- }
- return existe;
- }
- // Función de ejemplo que muestra las oficinas que pertenecen a una región (norte, sur, ...)
- private static void oficinasRegion() {
- //pedimos los datos
- System.out.println("Region?");
- String region = new Scanner(System.in).nextLine();
- //creamos la sentencia sql que nos interesa
- String sql = "SELECT * FROM Oficinas "
- + "Where region='" + region + "';";
- Connection con = conecta(); //creamos la conexión
- ResultSet rs = ejecuta(con, sql); //ejecutamos
- try {
- //recorremos el ResultSet y mostramos los datos
- while (rs.next()) {
- String res = rs.getString("oficina") + ", "
- + rs.getString("ciudad") + ", "
- + rs.getString("region") + ", "
- + rs.getString("dir") + ", "
- + rs.getString("ventas");
- System.out.println(res);
- }
- //cerramos la conexión
- con.close();
- } catch (SQLException ex) {
- System.out.println("Error de SQL");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement