Package factories

Source Code of factories.FabAbonne

package factories;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import data.abonne.Abonne;
import data.theatre.Place;
import data.theatre.Rangee;
import data.theatre.Theatre;
import data.theatre.Zone;

import java.util.*;

/**
*
* @author brahim
*
*/
public class FabAbonne {

  /**
   * Connexion JDBC
   */
  private Connection c;

  /*
   * Traitement du singleton de la fabrique
   */
  private static FabAbonne instance;

  /**
   * Constructeur prive
   *
   */
  private FabAbonne() {
    // this.cacheTheatre = new HashMap();
  }

  /**
   * Recuperation du singleton de FabPersonne
   *
   * @return
   */
  public static FabAbonne getInstance() {
    if (instance == null)
      instance = new FabAbonne();
    return instance;
  }

  /**
   * Requetes SQL
   */
  /* Les infos sur le théatre */
  String selectAbonne = "Select * from abonne where idAbonne = ?";
 
  /* Permet de savoir si il existe une reservation pour un abonné et une piéce */
  String selectReservation = "select idreservation from reservation where idabonne = ? "+
    "and idseance in (select idseance from seance where idpiece = ?)";
 
  /**
   * Creation d'un fauteuil et d'une reservation
   * insert into fauteuil values(1,1,'premier');
   * insert into reservation values(1,'2007-01-01',10,'1EF','A-1',1,'premiere');
   *
   */
  /* Les statements */
  PreparedStatement pSelectAbonne,pSelectReservation;

  /**
   * Preparation des statements
   *
   */
  private void init() throws SQLException {
    // preparation des statements:
    pSelectAbonne = c.prepareStatement(selectAbonne);
    pSelectReservation = c.prepareStatement(selectReservation);
  }

  /**
   * Mise en place d'une connexion JDBC au singleton
   *
   * @param c
   * @throws SQLException
   */
  public void setConnection(Connection c) throws SQLException {
    this.c = c;
    this.init();
  }

  /**
   *
   * @param idAbonne
   * @return
   */
  public Abonne rechercher(String idAbonne) throws SQLException {
    pSelectAbonne.clearParameters();
    pSelectAbonne.setString(1, idAbonne);
   
    ResultSet rsAbonne = pSelectAbonne.executeQuery();
    Abonne a = null;
    FabTheatre ft = FabTheatre.getInstance();
    ft.setConnection(c);
    while(rsAbonne.next()){
      String nom = rsAbonne.getString(2);
      String prenom = rsAbonne.getString(3);
      String adresse = rsAbonne.getString(4);
      int nbPlaces = rsAbonne.getInt(5);
      Date debutVal = rsAbonne.getDate(6);
      Date finVal = rsAbonne.getDate(7);     
      String idZone = rsAbonne.getString(8);
      Zone z = ft.parametrerZone(idZone);     
     
      a = new Abonne(idAbonne,nom,prenom,adresse,debutVal,finVal,nbPlaces,z);
    }
    return a;
  }
 
  /**
   *
   *
   *
   * @param idAbonne
   * @param idPiece
   * @return Le numéro de resevation de cette Abonnée pour cette pièce, null si pas de reservation
   * @throws SQLException
   */
  public String aReserve(String idAbonne, String idPiece) throws SQLException{
    pSelectReservation.clearParameters();
    pSelectReservation.setString(1, idAbonne);
    pSelectReservation.setString(2, idPiece);
   
    ResultSet rsReservation = pSelectReservation.executeQuery();
    if(rsReservation.next()){
      return rsReservation.getString(1);
    }
   
    return null;
   
  }

}
TOP

Related Classes of factories.FabAbonne

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.