Package dao

Source Code of dao.DaoAmitie

package dao;

import java.sql.CallableStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import business.Utilisateur;


public class DaoAmitie {
  /* ------------------------------------------------ REQUETES PRECOMPILEES */
  private static CallableStatement statementGetAmis = null;
  private static CallableStatement statementGetDemandesAmiFaites = null;
  private static CallableStatement statementGetDemandesAmiRecues = null;
  private static CallableStatement statementDemanderAmi = null;
  private static CallableStatement statementAccepterAmi = null;
  private static CallableStatement statementRefuserAmi = null;
  private static CallableStatement statementSupprimerAmi = null;


  /* --------------------------------------------------------- CONSTRUCTEUR */
  static {
    try {
      statementGetAmis = DbConnection.getInstance().prepareCall("{call getAmis(?)}");
      statementGetDemandesAmiFaites = DbConnection.getInstance().prepareCall("{call getDemandesAmiFaites(?)}");
      statementGetDemandesAmiRecues = DbConnection.getInstance().prepareCall("{call getDemandesAmiRecues(?)}");
      statementDemanderAmi = DbConnection.getInstance().prepareCall("{call demanderAmi(?, ?)}");
      statementAccepterAmi = DbConnection.getInstance().prepareCall("{call accepterAmi(?, ?)}");
      statementRefuserAmi = DbConnection.getInstance().prepareCall("{call refuserAmi(?, ?)}");
      statementSupprimerAmi = DbConnection.getInstance().prepareCall("{call supprimerAmi(?, ?)}");
    }
    catch (SQLException e) {
      e.printStackTrace();
    }
  }


  /* -------------------------------------------------------------- METHODE */
  public static List<Utilisateur> getAmis(int id_utilisateur) {
    List<Utilisateur> amis = null;
   
    try {
      ResultSet rs = null;
     
      synchronized(statementGetAmis) {
        statementGetAmis.setInt(1, id_utilisateur);
       
        rs = statementGetAmis.executeQuery();
      }
     
      if(rs != null) {
        amis = new ArrayList<Utilisateur>();
       
        while(rs.next()) {
          double ratio = rs.getInt("nbParisTotal") > 0 ? ((double) rs.getInt("nbParisJustes")) / rs.getInt("nbParisTotal") : 0.0;
          amis.add(new Utilisateur(
              rs.getInt("id_utilisateur"),
              rs.getString("mail"),
              rs.getString("pseudo"),
              null, // motDePasse
              rs.getInt("points"),
              rs.getInt("score"),
              rs.getInt("nbParisJustes"),
              rs.getInt("nbParisTotal"),
              ratio));
        }
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
    }
   
    return amis;
  }


  public static List<Utilisateur> getDemandesAmiFaites(int id_utilisateur) {
    List<Utilisateur> amis = null;
   
    try {
      ResultSet rs = null;
     
      synchronized(statementGetDemandesAmiFaites) {
        statementGetDemandesAmiFaites.setInt(1, id_utilisateur);
       
        rs = statementGetDemandesAmiFaites.executeQuery();
      }
     
      if(rs != null) {
        amis = new ArrayList<Utilisateur>();
       
        while(rs.next()) {
          double ratio = rs.getInt("nbParisTotal") > 0 ? ((double) rs.getInt("nbParisJustes")) / rs.getInt("nbParisTotal") : 0.0;
          amis.add(new Utilisateur(
              rs.getInt("id_utilisateur"),
              rs.getString("mail"),
              rs.getString("pseudo"),
              null, // motDePasse
              rs.getInt("points"),
              rs.getInt("score"),
              rs.getInt("nbParisJustes"),
              rs.getInt("nbParisTotal"),
              ratio));
        }
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
    }
   
    return amis;
  }


  public static List<Utilisateur> getDemandesAmiRecues(int id_utilisateur) {
    List<Utilisateur> amis = null;
   
    try {
      ResultSet rs = null;
     
      synchronized(statementGetDemandesAmiRecues) {
        statementGetDemandesAmiRecues.setInt(1, id_utilisateur);
       
        rs = statementGetDemandesAmiRecues.executeQuery();
      }
     
      if(rs != null) {
        amis = new ArrayList<Utilisateur>();
       
        while(rs.next()) {
          double ratio = rs.getInt("nbParisTotal") > 0 ? ((double) rs.getInt("nbParisJustes")) / rs.getInt("nbParisTotal") : 0.0;
          amis.add(new Utilisateur(
              rs.getInt("id_utilisateur"),
              rs.getString("mail"),
              rs.getString("pseudo"),
              null, // motDePasse
              rs.getInt("points"),
              rs.getInt("score"),
              rs.getInt("nbParisJustes"),
              rs.getInt("nbParisTotal"),
              ratio));
        }
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
    }
   
    return amis;
  }


  /* -------------------------------------------------------------- METHODE */
  public static boolean demanderAmi(int id_demandeur, int id_cible) {
    try {
      synchronized(statementDemanderAmi) {
        statementDemanderAmi.setInt(1, id_demandeur);
        statementDemanderAmi.setInt(2, id_cible);
       
        statementDemanderAmi.execute();
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
     
      return false;
    }
   
    return true;
  }


  public static boolean accepterAmi(int id_cible, int id_demandeur) {
    try {
      synchronized(statementAccepterAmi) {
        statementAccepterAmi.setInt(1, id_cible);
        statementAccepterAmi.setInt(2, id_demandeur);
       
        statementAccepterAmi.execute();
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
     
      return false;
    }
   
    return true;
  }


  public static boolean refuserAmi(int id_cible, int id_demandeur) {
    try {
      synchronized(statementRefuserAmi) {
        statementRefuserAmi.setInt(1, id_cible);
        statementRefuserAmi.setInt(2, id_demandeur);
       
        statementRefuserAmi.execute();
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
     
      return false;
    }
   
    return true;
  }


  public static boolean supprimerAmi(int id_demandeur, int id_cible) {
    try {
      synchronized(statementSupprimerAmi) {
        statementSupprimerAmi.setInt(1, id_demandeur);
        statementSupprimerAmi.setInt(2, id_cible);
       
        statementSupprimerAmi.execute();
      }
    }
    catch(SQLException e) {
      e.printStackTrace();
     
      return false;
    }
   
    return true;
  }
}
TOP

Related Classes of dao.DaoAmitie

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.