Package dao

Source Code of dao.EpreuveDAO

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import model.Epreuve;

/**
* Objet DAO (Data Acces Objet) en charge de retrouver dans la base de données
* les données correspondant à une épreuve.
* @author Linda
*/
public class EpreuveDAO extends AbstractDataBaseDao implements IEpreuveDAO {

    /**
     * Récupère les données issue de la BD pour les épreuves individuelles et
     * par équipe pour une discipline donnée.
     * Le nom de l'épreuve nomEp, son genre (catégorie) et son identifiant IdEp
     * sont les résulats des requêtes classés par genre et nomEp.
     */
    private static final String reqEpreuveIndPourDisc =
            "select nomEp , genre, IdEp from EpreuveInd where nomDisc ='%s' ORDER BY GENRE, NOMEP";
    private static final String reqEpreuveEqPourDisc =
            "select nomEp , genre, IdEp from EpreuveEq where nomDisc ='%s' ORDER BY GENRE, NOMEP";
    /**
     * Récupère les données issue de la BD pour les épreuves (individuelles et
     * par équipe pour une discipline donnée) pour lesquelles des billets sont
     * disponibles. Ces épreuves n'ont pas eu lieu et présentent des champs NULL
     * pour les sportifs médaillés (gold, silver, bronze).
     * Le nom de l'épreuve nomEp, son genre (catégorie) et son identifiant IdEp
     * sont les résulats des requêtes classés par genre et nomEp.
     */
    private static final String reqEpreuveIndPourDiscBillet =
            "select nomEp, genre, IdEp from EpreuveInd where nomDisc ='%s' and gold is null ORDER BY GENRE, NOMEP";
    private static final String reqEpreuveEqPourDiscBillet =
            "select nomEp, genre, IdEp from EpreuveEq where nomDisc ='%s' and gold is null ORDER BY GENRE, NOMEP";
    /**
     * Noms des critères de recherche
     */
    private static final String nom = "nomEp";
    private static final String genre = "genre";
    private static final String type = "type";
    private static Map<DataSource, EpreuveDAO> daoInstances =
            new HashMap<DataSource, EpreuveDAO>();

    public synchronized static EpreuveDAO getInstance(DataSource ds) {
        EpreuveDAO inst = daoInstances.get(ds);
        if (inst == null) {
            inst = new EpreuveDAO(ds);
            daoInstances.put(ds, inst);
        }
        return inst;
    }

    public EpreuveDAO(DataSource ds) {
        super(ds);
    }

    /**
     * Permet d'obtenir la liste des épreuves individuelles pour une discipline donnée.
     * @param nomD: nom de la discipline
     * @return epreuves: liste des épreuves individuelles pour cette discipline
     * @throws DAOException
     */
    public List<Epreuve> getEpreuvesInd(String nomD) throws DAOException {
        String req = String.format(reqEpreuveIndPourDisc, nomD);

        Connection conn = null;
        Statement stmt = null;
        ResultSet result = null;

        List<Epreuve> epreuves = new ArrayList<Epreuve>();

        try {
            synchronized (dataSource) {
                conn = dataSource.getConnection();
            }
            stmt = conn.createStatement();
            System.out.println(req);
            result = stmt.executeQuery(req);

            while (result.next()) {
                epreuves.add(new Epreuve(result.getInt(3), nomD, result.getString(1), result.getString(2), "Indiv."));
            }
            result.close();
            stmt.close();
            return epreuves;
        } catch (SQLException ex) {
            throw new DAOException("problème récupération liste des épreuves", ex);
        } finally {
            closeConnection(conn);
        }
    }

    /**
     * Permet d'obtenir la liste des épreuves par équipe pour une discipline donnée.
     * @param nomD: nom de la discipline
     * @return epreuves: liste des épreuves par équipe pour cette discipline
     * @throws DAOException
     */
    public List<Epreuve> getEpreuvesEq(String nomD) throws DAOException {
        String req = String.format(reqEpreuveEqPourDisc, nomD);

        Connection conn = null;
        Statement stmt = null;
        ResultSet result = null;

        List<Epreuve> epreuves = new ArrayList<Epreuve>();

        try {
            synchronized (dataSource) {
                conn = dataSource.getConnection();
            }
            stmt = conn.createStatement();
            System.out.println(req);
            result = stmt.executeQuery(req);
        
            while (result.next()) {
                epreuves.add(new Epreuve(result.getInt(3), nomD, result.getString(1), result.getString(2), "Par équipe"));
            }
            result.close();
            stmt.close();
            return epreuves;
        } catch (SQLException ex) {
            throw new DAOException("problème récupération liste des épreuves", ex);
        } finally {
            closeConnection(conn);
        }
    }

    public List<Epreuve> getEpreuvesIndBillet(String nomD) throws DAOException {
        String req = String.format(reqEpreuveIndPourDiscBillet, nomD);

        Connection conn = null;
        Statement stmt = null;


        List<Epreuve> epreuves = new ArrayList<Epreuve>();

        try {
            synchronized (dataSource) {
                conn = dataSource.getConnection();
            }
            stmt = conn.createStatement();
            System.out.println(req);
            ResultSet result = stmt.executeQuery(req);

            while (result.next()) {
                epreuves.add(new Epreuve(result.getInt(3), nomD, result.getString(1), result.getString(2), "Individuelle"));
            }
            result.close();
            stmt.close();
            return epreuves;
        } catch (SQLException ex) {
            throw new DAOException("problème récupération liste des épreuves", ex);
        } finally {
            closeConnection(conn);
        }
    }

    public List<Epreuve> getEpreuvesEqBillet(String nomD) throws DAOException {
        String req = String.format(reqEpreuveEqPourDiscBillet, nomD);

        Connection conn = null;
        Statement stmt = null;
        ResultSet result = null;

        List<Epreuve> epreuves = new ArrayList<Epreuve>();

        try {
            synchronized (dataSource) {
                conn = dataSource.getConnection();
            }
            stmt = conn.createStatement();
            System.out.println(req);
            result = stmt.executeQuery(req);

            while (result.next()) {
                epreuves.add(new Epreuve(result.getInt(3), nomD, result.getString(1), result.getString(2), "Par équipe"));
            }
            result.close();
            stmt.close();
            return epreuves;
        } catch (SQLException ex) {
            throw new DAOException("problème récupération liste des épreuves", ex);
        } finally {
            closeConnection(conn);
        }
    }

    public Epreuve getEpreuve(String nom) throws DAOException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Epreuve getEpreuve(int id) throws DAOException {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    private Epreuve loadEpreuveIND(ResultSet rs) throws SQLException {


        int id = rs.getInt(1);
        String nomD = rs.getString(6);
        String nom = rs.getString(2);
        String genre = rs.getString(7);
        //String description = rs.getString(6);
//        if (categorie == CategoriesProduit.FORMATION) {
//            return new Formation(id, categorie,codeMarque, description, prixUHT, tauxTVA);
//        } else {
        return new Epreuve(id, nomD, nom, genre, "Individuelle" );
        //}

    }

    private Epreuve loadEpreuveEQ(ResultSet rs) throws SQLException {


        int id = rs.getInt(1);
        String nomD = rs.getString(6);
        String nom = rs.getString(2);
        String genre = rs.getString(7);
        //String description = rs.getString(6);
//        if (categorie == CategoriesProduit.FORMATION) {
//            return new Formation(id, categorie,codeMarque, description, prixUHT, tauxTVA);
//        } else {
        return new Epreuve(id, nomD, nom, genre, "Par équipe" );
        //}

    }

    @Override
    public Epreuve getEpreuveInd(int id) throws DAOException {
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
            Statement stmt = conn.createStatement();


            ResultSet result = stmt.executeQuery("SELECT * FROM EPREUVEIND WHERE IDEP =" + id);

            if (result.next()) {
                return loadEpreuveIND(result);
            }
            // il n'y a pas de produit pour cet ID
            return null;

        } catch (SQLException e) {
            throw new DAOException("L'epreuve " + id + " n'a pu être lu ", e);
        } finally {
            closeConnection(conn);
        }
    }

    @Override
    public Epreuve getEpreuveEQ(int id) throws DAOException {
        Connection conn = null;
        try {
            conn = dataSource.getConnection();
            Statement stmt = conn.createStatement();


            ResultSet result = stmt.executeQuery("SELECT * FROM EPREUVEEQ WHERE IDEP =" + id);

            if (result.next()) {
                return loadEpreuveEQ(result);
            }
            // il n'y a pas de produit pour cet ID
            return null;

        } catch (SQLException e) {
            throw new DAOException("L'epreuve " + id + " n'a pu être lu ", e);
        } finally {
            closeConnection(conn);
        }
    }

   
}
TOP

Related Classes of dao.EpreuveDAO

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.