Package GestorJugadores

Source Code of GestorJugadores.JugadorBD

/**
* @file JugadorBD.java
* Archivo que contiene la clase JugadorBD.java
*
* @author Carlos Rabelo
* @version 1.2
*/

package GestorJugadores;

import ConexionBD.ConexionBD;
import GestorCuota.CuotaBD;
import GestorPago.PagoBD;
import java.sql.ResultSet;
import java.sql.SQLException;
import sun.util.calendar.CalendarDate;


/**
* Clase intermedia entre ConexionBD y ControladorJugador
*
* Esta clase hace de traductor entre objetos Jugador y consultas SQL
* para hacer posible la comunicación entre ControladorJugador y la BD
* Se implementa siguiendo el patrón de Diseño "Singleton"
*
* @author Carlos Rabelo
* @version 1.2
*/
public class JugadorBD {

    private static JugadorBD Instancia=null;
   
    /**
     * Constructor por defecto. Al ser un singleton el contructor es privado
     * @param void
     * @return void
     */
    private JugadorBD(){}

   
    /**
     * Método que devuelve la única instancia de la clase
     * @param void
     * @return Instancia
     */
    public static JugadorBD getInstancia() {
        if (Instancia==null){
            Instancia = new JugadorBD();
        }
        return Instancia;
    }

    @Override
    /**
     * Sobrecarga del método clone para impedir que se duplique la instancia
     * (Exigencias del patrón Singleton)
     * @param void
     * @return Object
     */
    public Object clone() throws CloneNotSupportedException {
        throw new CloneNotSupportedException();
    }
   

    /**
     * Método que añade un objeto Jugador a la Base de Datos
     * Si se pretende modificar un Jugador existente en la Base de Datos
     * utilizar el método updateJugador
     * @param jug Objeto Jugador a añadir
     * @return El objeto Jugador con el atributo jugadorId actualizado si
     * acabó con éxito o null si hubo algún error
     * @author Carlos Rabelo
     */
    public Jugador addJugador(Jugador jug) {
        java.sql.Date nacimiento=new java.sql.Date(jug.getNacimiento().getTime());

        String consulta="INSERT INTO Jugador(Nombre,Apellidos,Sexo,Nacimiento," +
            "Talla,Tutor,Correo,NumCuenta,Telefono,Observaciones,FormaPago,Estado) VALUES ('" +
            jug.getNombre() +
            "','" + jug.getApellidos() +
            "','" + jug.getSexo() +
            "','" + nacimiento.toString() +
            "','" + jug.getTalla() +
            "','" + jug.getTutor() +
            "','" + jug.getCorreo() +
            "','" + jug.getNumCuenta() +
            "','" + jug.getTelefono().toString() +
            "','" + jug.getObservaciones().toString() +
            "','" + jug.getFormaPago() +   
            "','";
        if (jug.getEstado()) {
            consulta+="activo');";
        } else {
            consulta+="baja');";
        }

        try {
            ConexionBD.getInstancia().conectar();
            ResultSet salidaBD=ConexionBD.getInstancia().actualizar(consulta);
            salidaBD.first();
            // Establece el valor de IdJugador generado por la BD en el objeto jug
            jug.setIdJugador(Integer.parseInt(salidaBD.getString(1)));
            ConexionBD.getInstancia().desconectar();
        } catch (SQLException ex) {
            return null;
        }
       
        return jug;
    }
   

    /**
     * Método que elimina un objeto Jugador de la Base de Datos
     * El Jugador en realidad no es eliminado sino que se le cambia
     * el atributo estado a 'baja' pero se mantiene en la Base de Datos
     * @param idJugador el identificador único del Jugador en la BD
     * @return true si se modificó con éxito false si no
     * @author Carlos Rabelo
     */
    public Boolean deleteJugador(Integer idJugador) {
        try {
            // Hacer comprobaciones si necesario
            ConexionBD.getInstancia().conectar();
            String consulta="UPDATE Jugador SET Estado='baja' WHERE idJugador=" + idJugador.toString() + ";";       
            ConexionBD.getInstancia().actualizar(consulta);
            ConexionBD.getInstancia().desconectar();
           
        } catch (SQLException ex) {
            return false;
        }
        return true;
    }
  
   
   
    public Jugador getJugador(int idJugador){
        String consulta="SELECT * FROM Jugador WHERE "+
                        " idJugador  = '" + idJugador + "'"+
                        ";";
        Jugador listajug = null;
        try {
            ConexionBD.getInstancia().conectar();
            ResultSet tabla = ConexionBD.getInstancia().consultar(consulta);

            if (tabla.last()) { // Si devuelve false es que la búsqueda es vacía
                int nfilas=tabla.getRow();
                tabla.beforeFirst(); // Volvemos al principio
                //listajug=new Jugador;
                Boolean estado;
                for (int i=0; i<nfilas; i++){   
                    tabla.next();
                    estado = true;
                    if (tabla.getString("Estado").equals("baja")) {
                        estado = false;
                    }
                    listajug = new Jugador(tabla.getString("Nombre"), tabla.getString("Apellidos"),
                            tabla.getString("Sexo").charAt(0), tabla.getDate("Nacimiento"),
                            tabla.getString("Talla"), tabla.getString("Tutor"), tabla.getString("Correo"),
                            tabla.getString("NumCuenta"), tabla.getInt("Telefono"),
                            tabla.getString("Observaciones"),
                            tabla.getString("FormaPago").charAt(0),
                            estado);
                    listajug.setIdJugador(idJugador);
                }
            }
            ConexionBD.getInstancia().desconectar();
        } catch (SQLException ex) {
            return null;
        }
        return listajug;
    }
   
   
   
   
    /**
     * Método que hace una consulta en la tabla Jugador de la Base de Datos
     * y devuelve un vector de Jugadores que cumplen los parámetros de búsqueda
     * @param nombre_jug Nombre del jugador 
     * @param apellidos_jug Apellidos del jugador
     * @return Vector de objetos Jugador cumpliendo los parámetros de búsqueda
     * si lo hubiera o null en caso de error o si la consulta no ha dado
     * resultados
     */
    public Jugador[] getJugador(String nombre_jug, String apellidos_jug)  {
        // Solo se implementa la búsqueda por nombre y apellidos que es lo especificado en el diagrama de secuencia correspondiente
        String consulta="SELECT * FROM Jugador WHERE Jugador.Nombre LIKE '" + nombre_jug + "%' AND Jugador.Apellidos LIKE '" + apellidos_jug + "%';";
        Jugador[] listajug=null;
        try {
            ConexionBD.getInstancia().conectar();
            ResultSet tabla = ConexionBD.getInstancia().consultar(consulta);

            if (tabla.last()) { // Si devuelve false es que la búsqueda es vacía
                int nfilas=tabla.getRow();
                tabla.beforeFirst(); // Volvemos al principio
                listajug=new Jugador[nfilas];
                Boolean estado;
                for (int i=0; i<nfilas; i++){   
                    tabla.next();
                    estado = true;
                    if (tabla.getString("Estado").equals("baja")) {
                        estado = false;
                    }
                    listajug[i] = new Jugador(tabla.getString("Nombre"), tabla.getString("Apellidos"),
                            tabla.getString("Sexo").charAt(0), tabla.getDate("Nacimiento"),
                            tabla.getString("Talla"), tabla.getString("Tutor"), tabla.getString("Correo"),
                            tabla.getString("NumCuenta"), tabla.getInt("Telefono"),
                            tabla.getString("Observaciones"),
                            tabla.getString("FormaPago").charAt(0),
                            estado);
                    listajug[i].setIdJugador(tabla.getInt("IdJugador"));
                }
            }
            ConexionBD.getInstancia().desconectar();
        } catch (SQLException ex) {
            return null;
        }
        return listajug;
    }
   

    /**
     * Método que modifica un objeto Jugador de la Base de Datos
     * El Jugador debe estar en la Base de Datos previamente
     * El objeto a modificar se reconoce por el atributo idJugador y
     * se actualizan los valores de los parámetros a los que tiene
     * el objeto Jugador
     * @param idJugador el identificador único del Jugador en la BD
     * @return true si se modificó con éxito false si no
     * @author Carlos Rabelo
     */
    /**
     * Método que debe modificar un jugador pero que no se puede implementar
     * porque no se puede identificar al jugador de forma unívoca
     * @param nombre_jug Nombre del jugador 
     * @param apellidos_jug Apellidos del jugador
     * @param sexo_jug Sexo del jugador
     * @param nacimiento_jug Fecha de nacimiento del jugador
     * @param talla_jug Talla del jugador
     * @param tutor_jug Nombre del tutor del jugador
     * @param correo_jug Correo electrónico del jugador
     * @param num_cuenta_jug  Número de cuenta del jugador
     * @param tlf_jug Teléfono del jugador
     * @param estado_jug Estado (activo o baja) del jugador
     * @return true si se modificó con éxito false en caso contrario
     */
   
    public Boolean updateJugador(Jugador jug) {
          
        Boolean salida=true;
       
        // Hacer comprobaciones si necesario
       
        java.sql.Date nacimiento=new java.sql.Date(jug.getNacimiento().getTime());

        String consulta="UPDATE Jugador SET Nombre='" + jug.getNombre() +
                "', Apellidos='" + jug.getApellidos() +
                "', Sexo='" + jug.getSexo() +
                "', Nacimiento='" + nacimiento.toString() +
                "', Talla='" + jug.getTalla() +
                "', Tutor='" + jug.getTutor() +
                "', Correo='" + jug.getCorreo() +
                "', NumCuenta='" + jug.getNumCuenta() +
                "', Telefono='" + jug.getTelefono().toString() +
                "', Observaciones='" + jug.getObservaciones().toString() +
                "', FormaPago='" +jug.getFormaPago()+
                "', Estado='"
                ;
           
        if (jug.getEstado()) {
            consulta+="activo";
        } else {
            consulta+="baja";
        }
        consulta+="' WHERE idJugador=" + jug.getIdJugador().toString() + ";";
       
        try {
            ConexionBD.getInstancia().conectar();
            ConexionBD.getInstancia().actualizar(consulta);
            ConexionBD.getInstancia().desconectar();
        } catch (SQLException ex) {
            System.out.println(ex);
            salida=false;
        }
        return salida;
    }
   
   
   
   
   
   
   
    public Integer [] getListaJugadores(){
    // Solo se implementa la búsqueda por nombre y apellidos que es lo especificado en el diagrama de secuencia correspondiente
        String consulta="SELECT idJugador FROM Jugador ';";
        Integer [] listajug=null;
        try {
            ConexionBD.getInstancia().conectar();
            ResultSet tabla = ConexionBD.getInstancia().consultar(consulta);

            if (tabla.last()) { // Si devuelve false es que la búsqueda es vacía
                int nfilas=tabla.getRow();
                tabla.beforeFirst(); // Volvemos al principio
                listajug=new Integer[nfilas];
                Boolean estado;
                for (int i=0; i<nfilas; i++){   
                    tabla.next();
                    listajug[i] = new Integer(tabla.getInt(i));
                }
            }
            ConexionBD.getInstancia().desconectar();
        } catch (SQLException ex) {
            return null;
        }
        return  listajug;
    }
}
TOP

Related Classes of GestorJugadores.JugadorBD

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.