No es un bug, es una característica no documentada

domingo, 1 de noviembre de 2015

Acceso a datos. Ejercicios (V). JDBC

21:08 Posted by Inazio , , No comments
Utilizar para todos los ejercicios que vienen a continuación el script demodb.SQL (descargar aquí).
Realizar las siguientes clases Java:

1. Visualizar número y nombre de todos los departamentos.


import java.sql.*;

public class Main {

     public static void main(String[] args) {

          // Propiedades
          Connection conn = null;
          Statement stmt;
          ResultSet rs;
          String url = "jdbc:mysql://localhost:3306/demodb";
          String user = "root";
          String password = "";

          // Métodos
         
          // Importo driver
          try{
                Class.forName("com.mysql.jdbc.Driver");
          }
          catch(ClassNotFoundException e){
                e.printStackTrace();
          }
         
          // Trabajo con base de datos
          try{
                conn = DriverManager.getConnection(url, user, password);
                stmt = conn.createStatement();
                rs = stmt.executeQuery("select deptno, dname from dept");
               
                while(rs.next()){
                     int numDept = rs.getInt("deptno");
                     String nombre = rs.getString("dname");
                     System.out.println("Departamento: " + numDept + ". Nombre: " + nombre);
                }
               
                rs.close();
                stmt.close();
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if(conn != null){
                     try{
                          conn.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     }

}

2. Modificar el nombre de un departamento cuyo número (y nombre) se pase(n) como argumento. No utilizar sentencias preparadas. Visualizar el número de filas afectadas.

import java.sql.*;

public class BaseDatos {

     // Propiedades
     Connection conn = null;
     Statement stmt;
     String url = "jdbc:mysql://localhost:3306/demodb";
     String user = "root";
     String password = "";
    
     // Métodos
     public void cargarDriver(){
          try{
                Class.forName("com.mysql.jdbc.Driver");
          }
          catch(ClassNotFoundException e){
                e.printStackTrace();
          }
     }
    
     public void conectarBD(){
          try{
                conn = DriverManager.getConnection(url, user, password);
          }
          catch(SQLException e){
                e.printStackTrace();
          }
     }
    
     public void cambiarDepto(int numDep, String newName){
         
                               int i = 0;
          cargarDriver();
          conectarBD();
         
          try{
                                               stmt = conn.createStatement();
                i = stmt.executeUpdate("UPDATE DEPT SET DNAME = '" + newName + "' WHERE DEPTNO = " + numDep + ";");
                stmt.close();
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if (conn != null){
                     try{
                          conn.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
         
          System.out.println("Filas afectadas: " + i);
     }
}

3. Realiza el ejercicio anterior con sentencias preparadas.

import java.sql.*;

public class BaseDatos {

     // Propiedades
     Connection conn = null;
     Statement stmt;
     String url = "jdbc:mysql://localhost:3306/demodb";
     String user = "root";
     String password = "";
    
     // Métodos
     public void cargarDriver(){
          try{
                Class.forName("com.mysql.jdbc.Driver");
          }
          catch(ClassNotFoundException e){
                e.printStackTrace();
          }
     }
    
     public void conectarBD(){
          try{
                conn = DriverManager.getConnection(url, user, password);
          }
          catch(SQLException e){
                e.printStackTrace();
          }
     }
    
     public void cambiarDepto(int numDep, String newName){
         
          int i = 0;
          cargarDriver();
          conectarBD();
         
          try{
                PreparedStatement ps = conn.prepareStatement("UPDATE DEPT SET DNAME = (?) WHERE DEPTNO = (?);");
                ps.setString(1, newName);
                ps.setInt(2, numDep);
                i = ps.executeUpdate();
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if (conn != null){
                     try{
                          conn.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
         
          System.out.println("Filas afectadas: " + i);
     }
}

4. Realiza el ejercicio anterior utilizando transacciones

import java.sql.*;

public class BaseDatos {

     // Propiedades
     Connection conn = null;
     Statement stmt;
     String url = "jdbc:mysql://localhost:3306/demodb";
     String user = "root";
     String password = "";
    
     // Métodos
     public void cargarDriver(){
          try{
                Class.forName("com.mysql.jdbc.Driver");
          }
          catch(ClassNotFoundException e){
                e.printStackTrace();
          }
     }
    
     public void conectarBD(){
          try{
                conn = DriverManager.getConnection(url, user, password);
          }
          catch(SQLException e){
                e.printStackTrace();
          }
     }
    
     public void cambiarDepto(int numDep, String newName){
         
          int i = 0;
          cargarDriver();
          conectarBD();
         
          try{
                conn.setAutoCommit(false); // Desactivo el commit para cada sentencia
                PreparedStatement ps = conn.prepareStatement("UPDATE DEPT SET DNAME = (?) WHERE DEPTNO = (?);");
                ps.setString(1, newName);
                ps.setInt(2, numDep);
                i = ps.executeUpdate();
                conn.commit(); // Al finalizar sentencias hago commit
                conn.setAutoCommit(true); // Y vuelvo a activar autocommit para resto de aplicación
          }
          catch(SQLException e){
                try{
                     conn.rollback(); // Si algo falla hago rollback para dejarlo como antes
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
               
          }
          finally{
                if (conn != null){
                    try{
                          conn.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
         
          System.out.println("Filas afectadas: " + i);
     }
}

5. Realizar una clase para acceso a la base de datos demodb con los siguientes
métodos. Controlar errores y utilizar sentencias preparadas:

  1. Conectar a la base de datos (carga del driver y establecimiento de
conexión).
  1. Insertar un departamento. El método recibirá tres argumentos
(número, nombre y localidad).
  1. El mismo que b pero recibiendo un solo argumento, un objeto de la clase departamento. Será necesario por tanto crear una clase departamento, con sus atributos y métodos getter y setter.
  2. Método que devuelva un ArrayList de objetos departamento ante la consulta de todas las columnas de todos los departamentos de la tabla dept
  3. Método que reciba un número de departamento y devuelva sus datos mediante un objeto.
  4. Método que reciba un objeto departamento y actualice la tabla dept.
  5. Método que reciba un número de departamento y lo dé de baja.
  6. Ídem del anterior pero devolviendo el número de filas afectadas.
  7. Método que reciba un número de departamento y actualice su localidad (segundo argumento del método). Utilizar el siguiente procedimiento:

delimiter $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `actualizaDept`(cod
INT(2), localidad VARCHAR(13))
BEGIN
UPDATE Dept SET loc=localidad WHERE deptno = cod;
END$$
delimiter ;

  1. Método que reciba un número de departamento y devuelva un objeto con sus datos. Utilizar el siguiente procedimiento MySQL:

delimiter $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `consultaDepar`(in
num int(2), out name varchar(14), out local varchar(13))
begin
select dname, loc into name,local 
from dept 
where dept.deptno=num;
end$$
delimiter ;

  1. Método que reciba una cantidad y un número de departamento e incremente el sueldo de todos los empleados de ese departamento en esa cantidad. La actualización la realizará un procedimiento MySQL que se creará previamente.
  2. Ídem del anterior pero no haciendo uso de un procedimiento MySQL sino de un resultset.
  3. Método que imprima el gestor de base de datos empleado, el driver utilizado y el usuario conectado.
  4. Método que imprima del esquema actual todas las tablas y vistas que contiene, indicando además del nombre, si se trata de una tabla o una vista.
  5. Ídem del anterior pero para programas almacenados (procedimientos/funciones).
  6. Método que reciba un esquema y una tabla e imprima sus columnas (nombre de la columna, tipo, tamaño y si admite o no valores nulos).
  7. Método que reciba un esquema y una tabla e imprima la lista de columnas que forman la clave primaria.
  8. Método que reciba un esquema y una tabla e imprima la lista de todas las claves ajenas que utilizan la clave primaria de esta tabla.
  9. Método que reciba una consulta (p.ej. SELECT * FROM dept) e imprima el número de columnas recuperadas, y por cada columna el nombre, tipo, tamaño y si admite o no nulos.

ARCHIVO DEPARTAMENTO.JAVA

public class Departamento {

     // Propiedades
     private int numDep;
     private String nombreDep;
     private String localidad;
    
     // Constructor
     public Departamento(int numDep, String nombreDep, String localidad){
          this.numDep = numDep;
          this.nombreDep = nombreDep;
          this.localidad = localidad;
     }
    
     public Departamento(){}
    
     // Métodos
     public void setNumDep(int n){
          numDep = n;
     }
    
     public int getNumDep(){
          return numDep;
     }
    
     public void setNombreDep(String n){
          nombreDep = n;
     }
    
     public String getNombreDep(){
          return nombreDep;
     }
    
     public void setLocalidad(String n){
          localidad = n;
     }
    
     public String getLocalidad(){
          return localidad;
     }
}

ARCHIVO BASEDATOS.JAVA

import java.sql.*;
import java.util.ArrayList;

public class BaseDatos {

     // Propiedades
     Connection conn = null;
     Statement stmt = null;
     PreparedStatement ps = null;
     ResultSet rs = null;
     CallableStatement cs = null;
     DatabaseMetaData d = null;
     String url = "jdbc:mysql://localhost:3306/demodb";
     String user = "root";
     String password = "root";
     String driver = "com.mysql.jdbc.Driver";
    
     // Métodos
    
     // EJERCICIO A
     public void conectarBD(){
         
          // Cargra del Driver
          try{
                Class.forName(driver);
          }
          catch(ClassNotFoundException e){
                e.printStackTrace();
          }
         
          // Conexión a Base de datos
          try{
                conn = DriverManager.getConnection(url, user, password);
          }
          catch(SQLException e){
                e.printStackTrace();
          }
     } // fin función conectarBD
    
     public void cerrarConexion(){
          if (conn != null){
                try{
                     conn.close();
                }
                catch(SQLException e){
                     e.printStackTrace();
                }
          }
     } // Fin función cerrarConexion()
    
     // EJERCICIO B
     public void insertarDepto(int numDep, String nombreDept, String localidad){
         
          try{
                conn.setAutoCommit(false); // Desactivo el commit para cada sentencia
                ps = conn.prepareStatement("INSERT INTO DEPT VALUES((?),(?),(?));");
                ps.setInt(1, numDep);
                ps.setString(2, nombreDept);
                ps.setString(3,localidad);
                ps.executeUpdate();
                conn.commit(); // Al finalizar sentencias hago commit
                conn.setAutoCommit(true); // Y vuelvo a activar autocommit para resto de aplicación
          }
          catch(SQLException e){
                try{
                     conn.rollback(); // Si algo falla hago rollback para dejarlo como antes
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }   
          }
          finally{
                if (ps != null){
                     try{
                          ps.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin función insertarDept(x, x, x)
    
     // EJERCICIO C
     public void insertarDepto(Departamento depto){
          Departamento d = depto;
         
          try{
                conn.setAutoCommit(false);
                ps = conn.prepareStatement("INSERT INTO DEPT VALUES((?), (?), (?));");
                ps.setInt(1, d.getNumDep());
                ps.setString(2, d.getNombreDep());
                ps.setString(3, d.getLocalidad());
                ps.execute();
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if (ps != null){
                     try{
                          ps.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
               
          }
     } // Fin función insertarDept(x)
    
     // EJERCICIO D
     public ArrayList<Departamento> listarDepartamentos(){
          Departamento d = new Departamento();
          ArrayList<Departamento> listaDep = new ArrayList<Departamento>();
         
          try{
                stmt = conn.createStatement();
                rs = stmt.executeQuery("SELECT * FROM DEPT");
               
                while(rs.next()){
                     d.setNumDep(rs.getInt("DEPTNO"));
                     d.setNombreDep(rs.getString("DNAME"));
                     d.setNombreDep(rs.getString("LOC"));
                     listaDep.add(d);
                }
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if (rs != null){
                     try{
                          rs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
                if (stmt != null){
                     try{
                          stmt.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
         
          return listaDep;
     } // Fin función listarDepartamentos()
    
     // EJERCICIO E
     public Departamento cogerDepartamento(int numDep){
          Departamento d = new Departamento();
          try{
                stmt = conn.createStatement();
                rs = stmt.executeQuery("SELECT * FROM DEPT WHERE DEPTNO = " + numDep + ";");
               
                while(rs.next()){
                     d.setNumDep(rs.getInt("DEPTNO"));
                     d.setNombreDep(rs.getString("DNAME"));
                     d.setLocalidad(rs.getString("LOC"));
                }
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if (rs != null){
                     try{
                          rs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
                if (stmt != null){
                     try{
                          stmt.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
          return d;
     } // Fin función cogerDepartamento()
    
     // EJERCICIO F
     public void actualizarDepartamento(Departamento depto){
          Departamento d = depto;
         
          try{
                conn.setAutoCommit(false);
                ps = conn.prepareStatement("UPDATE DEPT SET DNAME = ?, LOC = ? WHERE DEPTNO = ?");
                ps.setString(1, d.getNombreDep());
                ps.setString(2, d.getLocalidad());
                ps.setInt(3, d.getNumDep());
                ps.executeUpdate();
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if (ps != null){
                     try{
                          ps.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
               
          }
     } // Fin función actualizarDepartamento()
    
     // EJERCICIO G
     public void borraDepto(int n){
          try{
                conn.setAutoCommit(false);
               ps = conn.prepareStatement("DELETE FROM DEPT WHERE DEPTNO = (?)");
                ps.setInt(1, n);
                ps.executeUpdate();
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if(ps != null){
                     try{
                          ps.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin función borrarDepto()
    
     // EJERCICIO H
     public int borrarDeptConFilas(int n){
         
          int r = 0;
         
          try{
                conn.setAutoCommit(false);
                ps = conn.prepareStatement("DELETE FROM DEPT WHERE DEPTNO = (?)");
                ps.setInt(1, n);
                r = ps.executeUpdate();
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if(ps != null){
                     try{
                          ps.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }

          return r;
     } // Fin función borrarDeptConFilas()
    
     // EJERCICIO I
     public void actualizarDeptCallable(int n, String localidad){
          try{
                conn.setAutoCommit(false);
                cs = conn.prepareCall("{call actualizaDept(?,?)}");
                cs.setInt(1, n);
                cs.setString(2, localidad);
                cs.execute();
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if (cs != null){
                     try{
                          cs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin función actualizarDeptCallable
    
     // EJERCICIO J
     public Departamento consultarDeptoCallable(int depto){
          Departamento r = new Departamento();
          try{
                conn.setAutoCommit(false);
                cs = conn.prepareCall("{call consultaDepar(?, ?, ?)}");
                cs.setInt(1, depto);
                cs.registerOutParameter(2, java.sql.Types.VARCHAR);
                cs.registerOutParameter(3, java.sql.Types.VARCHAR);
                cs.execute();
                r.setNumDep(depto);
                r.setNombreDep(cs.getString(2));
                r.setLocalidad(cs.getString(3));
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if (cs != null){
                     try{
                          cs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
         
          return r;
     } // Fin función consultarDeptoCallable()
    
     // EJERCICIO K
     public void actualizarSalarios(double cantidad, int depto){
          try{
                conn.setAutoCommit(false);
                cs = conn.prepareCall("{call actualizarSalarios(?,?)}");
                cs.setDouble(1, cantidad);
                cs.setInt(2, depto);
                cs.execute();
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     ex.printStackTrace();
                }
          }
          finally{
                if (cs != null){
                     try{
                          cs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin función actualizarSalarios()
    
     // EJERCICIO L
     public void actualizarSalariosResultSet(double cantidad, int depto){
          try{
                conn.setAutoCommit(false);
                stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
                rs = stmt.executeQuery("SELECT * FROM EMP WHERE DEPTNO = " + depto + ";");
                rs.beforeFirst(); // Situo al principio por si acaso
                while (rs.next()){
                     double salario = rs.getDouble("SAL") + cantidad;
                     rs.updateDouble("SAL", salario);
                     rs.updateRow();
                }
                conn.commit();
                conn.setAutoCommit(true);
          }
          catch(SQLException e){
                try{
                     conn.rollback();
                }
                catch(SQLException ex){
                     e.printStackTrace();
                }
          }
          finally{
                if (rs != null){
                     try{
                          rs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
                if (stmt != null){
                     try{
                          stmt.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin función actualizarSalariosResultSet()
    
     // EJERCICIO M
     public void verInfo(){
          if (conn != null){
                try{
                     d = (DatabaseMetaData)conn.getMetaData();
                     System.out.println("Gestor: " + d.getDatabaseProductName());
                     System.out.println("Usuario conectado: " + d.getUserName());
                     System.out.println("Driver utilizado: " + d.getDriverVersion());
                }
                catch(SQLException e){
                     e.printStackTrace();
                }
          }
     } // Fin función verInfo()
    
     public void tablasAndVistas(){
          try{
                stmt = conn.createStatement();
                rs = stmt.executeQuery("SHOW FULL TABLES;");
                while (rs.next()){
                     if (rs.getString(2).equals("BASE TABLE"))
                          System.out.println(rs.getString(1) + ": TABLA");
                     if (rs.getString(2).equals("VIEW"))
                          System.out.println(rs.getString(1) + ": VISTA");
                }
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if (rs != null){
                     try{
                          rs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
                if (stmt != null){
                     try{
                          stmt.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin funcion tablasAndVistas()
    
     // EJERCICIO O
     public void procedimientosAndFunciones(){
          try{
                stmt = conn.createStatement();
                rs = stmt.executeQuery("SHOW PROCEDURE STATUS");
                while (rs.next()){
                     System.out.println(rs.getString(2) + ": PROCEDIMIENTO");
                }
               
                rs = stmt.executeQuery("SHOW FUNCTION STATUS");
                while (rs.next()){
                     System.out.println(rs.getString(2) + ": FUNCIÓN");
                }
          }
          catch(SQLException e){
                e.printStackTrace();
          }
          finally{
                if (rs != null){
                     try{
                          rs.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
                if (stmt != null){
                     try{
                          stmt.close();
                     }
                     catch(SQLException e){
                          e.printStackTrace();
                     }
                }
          }
     } // Fin función procedimientosAndFunciones()
    
     // EJERCICIO P
     public void infoTablas(String esquema, String tabla){
          if (conn != null){
                try{
                     d = (DatabaseMetaData)conn.getMetaData();
                     rs = d.getColumns(conn.getCatalog(), esquema, "%", null);
                    
                     System.out.println("Esquema\tNombre\n");
                    
                     while(rs.next()){
                          System.out.println("Nombre: " + rs.getString(3) + "\tTamaño: " + rs.getString(7) + "\tTipo: " + rs.getString(6) + "\tValores nulos: " + rs.getString(18));
                     }
                }
                catch(SQLException e){
                     e.printStackTrace();
                }
                finally{
                     if (rs != null){
                          try{
                               rs.close();
                          }
                          catch(SQLException e){
                               e.printStackTrace();
                          }
                     }
                }
          }
     } // Fin función infoTablas()
        
     // EJERCICIO Q
     public void infoTablasPrimarias(String esquema, String tabla){
          if (conn != null){
                try{
                     d = (DatabaseMetaData)conn.getMetaData();
                     rs = d.getPrimaryKeys(conn.getCatalog(), esquema, tabla);
                    
                     System.out.println("Schema\tTabla\tClave Primaria");
                     while (rs.next()){
                          System.out.println(rs.getString(1) + "\t" + rs.getString(3) + "\t" + rs.getString(4));
                     }
                }
                catch(SQLException e){
                     e.printStackTrace();
                }
                finally{
                     if (rs != null){
                          try{
                               rs.close();
                          }
                          catch(SQLException e){
                               e.printStackTrace();
                          }
                     }
                }
          }
     } // Fin función infoTablasPrimarias()
    
     // EJERCICIO R
     public void infoTablasAjenas(String esquema, String tabla){
          if (conn != null){
                try{
                     d = (DatabaseMetaData)conn.getMetaData();
                     rs = d.getExportedKeys(conn.getCatalog(), esquema, tabla);
                    
                     while(rs.next()){
                          System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3) + "\t" + rs.getString(4));
                     }
                }
                catch(SQLException e){
                     e.printStackTrace();
                }
                finally{
                     if (rs != null){
                          try{
                               rs.close();
                          }
                          catch(SQLException e){
                               e.printStackTrace();
                          }
                     }
                }
          }
     } // Fin función infoTablasAjenas()
    
     // EJERCICIO S
     public void infoConsulta(String select){
          if (conn != null){
                try{
                     stmt = conn.createStatement();
                     rs = stmt.executeQuery(select);
                    
                     while(rs.next()){
                          System.out.println(rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString(3));
                     }
                }
                catch(SQLException e){
                     e.printStackTrace();
                }
                finally{
                     if (stmt != null){
                          try{
                               stmt.close();
                          }
                          catch(SQLException e){
                               e.printStackTrace();
                          }
                     }
                     if (rs != null){
                          try{
                               rs.close();
                          }
                          catch(SQLException e){
                               e.printStackTrace();
                          }
                     }
                }
          }
     } // Fin función infoConsulta()
}

ARCHIVO MAIN.JAVA

import java.util.ArrayList;

public class Main {

     public static void main(String[] args) {

          // Propiedades
          BaseDatos bd = new BaseDatos();
          Departamento d = new Departamento(70, "POTTER", "UK");
          ArrayList<Departamento> lDep = new ArrayList<Departamento>();
         
          // Métodos
          bd.conectarBD();
          bd.insertarDepto(60, "TOPSECRET", "QUEEN");
          bd.insertarDepto(d);
          lDep = bd.listarDepartamentos();
          d = bd.cogerDepartamento(40);
          bd.actualizarDepartamento(d);
          bd.borraDepto(70);
          System.out.println("Filas afectadas: " + bd.borrarDeptConFilas(80));
          bd.actualizarDeptCallable(70, "HUESCA");
          d = bd.consultarDeptoCallable(40);
          System.out.println(d.getNumDep() + d.getNombreDep() + d.getLocalidad());
          bd.actualizarSalarios(1600.00, 10);
          bd.actualizarSalariosResultSet(1600.00, 10);
          bd.verInfo();
          bd.tablasAndVistas();
          bd.procedimientosAndFunciones();
          bd.infoTablas("demodb", "dept");
          bd.infoTablasPrimarias("demodb", "dept");
          bd.infoTablasAjenas("demobd", "dept");
          bd.infoConsulta("SELECT * FROM dept");
          bd.cerrarConexion();
         
     }
} 

0 comentarios:

Publicar un comentario