Package dao.implementation.mysql.voiture

Source Code of dao.implementation.mysql.voiture.MySqlVoitureDao

package dao.implementation.mysql.voiture;


import modele.alerte.AlerteVoiture;
import modele.commun.Etat;
import modele.voiture.MarqueVoiture;
import modele.voiture.ModeleVoiture;
import modele.voiture.Voiture;
import dao.IVoitureDao;
import dao.implementation.mysql.AccessMySql;
import dao.implementation.mysql.alerte.MySqlAlerteVoitureDao;
import gui.MainWindow;
import gui.util.TaxiGuiUtil;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;

/**
*
* <p> MySqlVoitureDao c'est une classe Dao qui impl�mente les m�thodes de l'interface IVoitureDao :</p>
* <ul>
*   <li> public Voiture insert(final Voiture voiture) : insere une voiture; </p>
<li> public Voiture update(final Voiture voiture) : met � jour un enregistrement de la voiture; </p>
<li> public Voiture find(final int id): cherche  la voiture par � partir de son id;
<li> public ArrayList<Voiture> findAll(): charge depuis la base de donn�es et renvoie la liste de toutes les voitures; </li>
*   <li> public void delete(final Voiture voiture)  : supprime la voiture;
<li> findByImmatriculation(String immatriculation): cherche une voiture par son immatriculation; (n'a pas �t� impl�menet�e) </li>
* </li>
* @author Kasandra
*/
public class MySqlVoitureDao  implements IVoitureDao{

  private static final String INSERT_VOITURE = "insert into tvoiture ( immatricVoit, numChassisVoit, dateAchatVoit, datePremImmatricVoit, numIdentifAggloVoit, numIdentifCentralTelVoit, kmVoit, indicatifKmFinCircuVoit, idMarqueVoit, idModVoit, idEtat) values (?,?,?, ?,?,?, ?,?,?,?,?)";
  private static final String UPDATE_VOITURE  = "update tvoiture set immatricVoit = ?, numChassisVoit = ?, dateAchatVoit = ?, datePremImmatricVoit = ?, numIdentifAggloVoit = ?, numIdentifCentralTelVoit = ?, kmVoit = ?, indicatifKmFinCircuVoit = ?, idMarqueVoit = ?, idModVoit = ?, idEtat = ? where idVoit = ?";
  private static final String DELETE_VOITURE = "delete from tvoiture where idVoit = ?";
  private static final String GET_ALL_VOITURE  = "SELECT idVoit, immatricVoit, numChassisVoit, dateAchatVoit, datePremImmatricVoit, numIdentifAggloVoit, numIdentifCentralTelVoit,  kmVoit, indicatifKmFinCircuVoit, tmarqueVoiture.idMarqueVoit, tmarqueVoiture.descripMarqueVoit, tmodeleVoiture.idModVoit, tmodeleVoiture.descripModVoit, TEtat.idEtat, TEtat.descripEtat FROM tvoiture, tmarqueVoiture, tmodelevoiture, TEtat WHERE tmarqueVoiture.idMarqueVoit = tvoiture.idMarqueVoit AND tmodeleVoiture.idModVoit = tvoiture.idModVoit AND tvoiture.idEtat = TEtat.idEtat";
 
  private static final String GET_ALL_VOITURE_ACTIF  = "SELECT idVoit, immatricVoit, numChassisVoit, dateAchatVoit, datePremImmatricVoit, numIdentifAggloVoit, numIdentifCentralTelVoit,  kmVoit, indicatifKmFinCircuVoit, tmarqueVoiture.idMarqueVoit, tmarqueVoiture.descripMarqueVoit, tmodeleVoiture.idModVoit, tmodeleVoiture.descripModVoit, TEtat.idEtat, TEtat.descripEtat FROM tvoiture, tmarqueVoiture, tmodelevoiture, TEtat WHERE tmarqueVoiture.idMarqueVoit = tvoiture.idMarqueVoit AND tmodeleVoiture.idModVoit = tvoiture.idModVoit AND tvoiture.idEtat = TEtat.idEtat AND TEtat.descripEtat != 'inactif' ";
 
  private static final String GET_VOITURE_BY_ID = GET_ALL_VOITURE  + " and idVoit = ?";

  public void delete(final Voiture voiture) {
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          try {
            smt = connection.prepareStatement(DELETE_VOITURE);
            smt.setInt(1, voiture.getId());
            smt.executeUpdate();
          } finally {
            if (smt != null) {
              smt.close();
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
       
        }
      }
    });
  }

  public Voiture find(final int id) {
    final Voiture[] result = new Voiture[1];
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          ResultSet res = null;
          try {
            smt = connection.prepareStatement(GET_VOITURE_BY_ID);
            smt.setInt(1, id);
            res = smt.executeQuery();
            if (res.next()) {
              result[0] = new Voiture(res.getInt(1));
              result[0].setNumeroImmatriculation(res.getString(2));
              result[0].setNumeroChassis(res.getString(3));

              Date dateAchat = new Date(res.getDate(4).getTime());
              result[0].setDateAchat(dateAchat);

              Date datePremImmi = new Date(res.getDate(5).getTime());
              result[0].setDatePremiereImmatriculation(datePremImmi);

              result[0].setNumeroAgglomeration(Integer.parseInt(res.getString(6)));
              result[0].setNumCentralTel(Integer.parseInt(res.getString(7)));
             
              long kilometrage = Long.parseLong(res.getString(8));
              result[0].setKilometrage(kilometrage);
             
              result[0].setKilometrageFinCirculation(Long.parseLong(res.getString(9)));
             

              MarqueVoiture marqueVoiture = new MarqueVoiture(res.getInt(10));
              marqueVoiture.setLibelle(res.getString(11));
              result[0].setMarque(marqueVoiture);

              ModeleVoiture modeleVoiture = new ModeleVoiture(res.getInt(12));
              modeleVoiture.setNomModele(res.getString(13));
              result[0].setModele(modeleVoiture);

              Etat etat = new Etat(res.getInt(14));
              etat.setDescrip(res.getString(15));
              result[0].setEtat(etat);
            }
          } finally {
            try {
              if (res != null) {
                res.close();
              }
            } finally {
              if (smt != null) {
                smt.close();
              }
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
        }
      }
    });
    return result[0];
  }

  public ArrayList<Voiture> findAll() {
   
    final ArrayList<Voiture> listeVoiture = new ArrayList<Voiture>();
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          ResultSet res = null;
          try {
            smt = connection.prepareStatement(GET_ALL_VOITURE);
            res = smt.executeQuery();
            while (res.next()) {
              Voiture voiture = new Voiture(res.getInt(1));

              voiture.setNumeroImmatriculation(res.getString(2));
              voiture.setNumeroChassis(res.getString(3));

              Date dateAchat = new Date(res.getDate(4).getTime());
              voiture.setDateAchat(dateAchat);

              Date datePremImmi = new Date(res.getDate(5).getTime());
              voiture.setDatePremiereImmatriculation(datePremImmi);

              voiture.setNumeroAgglomeration(res.getInt(6));
              voiture.setNumCentralTel(res.getInt(7));
              voiture.setKilometrage(res.getLong(8));
              voiture.setKilometrageFinCirculation(res.getLong(9));
             

              MarqueVoiture marqueVoiture = new MarqueVoiture(res.getInt(10));
              marqueVoiture.setLibelle(res.getString(11));
              voiture.setMarque(marqueVoiture);

              ModeleVoiture ModeleVoiture = new ModeleVoiture(res.getInt(12));
              ModeleVoiture.setNomModele(res.getString(13));
              voiture.setModele(ModeleVoiture);

              Etat etat = new Etat(res.getInt(14));
              etat.setDescrip(res.getString(15));
              voiture.setEtat(etat);

              listeVoiture.add(voiture);
            }
          } finally {
            try {
              if (res != null) {
                res.close();
              }
            } finally {
              if (smt != null) {
                smt.close();
              }
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
        }
      }
    });
    return listeVoiture;
  }

  public Voiture insert(final Voiture voiture) {
    final Voiture[] result = new Voiture[1];
    result[0] = null;
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement psmt = null;
          try {

            psmt = connection.prepareStatement(INSERT_VOITURE);

            psmt.setString(1,voiture.getNumeroImmatriculation());
            psmt.setString(2,voiture.getNumeroChassis());
            psmt.setDate(3,new java.sql.Date(voiture.getDateAchat().getTime()));
            psmt.setDate(4,new java.sql.Date(voiture.getDatePremiereImmatriculation().getTime()));
            psmt.setInt(5, voiture.getNumuroAgglomeration());
            psmt.setInt(6, voiture.getNumCentralTel());
            psmt.setLong(7, voiture.getKilometrage());
            psmt.setLong(8, voiture.getKilometrageFinCirculation());
            psmt.setInt(9, voiture.getMarque().getId());
            psmt.setInt(10, voiture.getModele().getId());
            psmt.setInt(11, voiture.getEtat().getCdeEtat());

            psmt.executeUpdate();
           
          } finally {
            if (psmt != null) {
              psmt.close();
            }
          }
          Statement smt = null;
          ResultSet res = null;
          try {
            smt = connection.createStatement();
            res = smt.executeQuery("select idVoit, immatricVoit, numChassisVoit, dateAchatVoit, datePremImmatricVoit, numIdentifAggloVoit, numIdentifCentralTelVoit, kmVoit, indicatifKmFinCircuVoit, tmarqueVoiture.idMarqueVoit, tmarqueVoiture.descripMarqueVoit, tmodeleVoiture.idModVoit,tmodeleVoiture.descripModVoit, TEtat.idEtat,TEtat.descripEtat from tvoiture, tmarquevoiture, tmodeleVoiture, TEtat where tmarqueVoiture.idMarqueVoit = tvoiture.idMarqueVoit and tmodeleVoiture.idModVoit = tvoiture.idModVoit and tvoiture.idEtat = TEtat.idEtat and idVoit = LAST_INSERT_ID()");
            if (res.next()) {

              result[0] = new Voiture(res.getInt(1));

              result[0].setNumeroImmatriculation(res.getString(2));
              result[0].setNumeroChassis(res.getString(3));

              Date datePremImmi = new Date(res.getDate(4).getTime());
              result[0].setDateAchat(datePremImmi);

              Date dateAchat = new Date(res.getDate(5).getTime());
              result[0].setDateAchat(dateAchat);

              result[0].setNumeroAgglomeration(Integer.parseInt(res.getString(6)));
              result[0].setNumCentralTel(Integer.parseInt(res.getString(7)));

              result[0].setKilometrageFinCirculation(Long.parseLong(res.getString(8)));
              result[0].setKilometrage(Long.parseLong(res.getString(9)));

              MarqueVoiture marqueVoiture = new MarqueVoiture(res.getInt(10));
              marqueVoiture.setLibelle(res.getString(11));
              result[0].setMarque(marqueVoiture);

              ModeleVoiture modeleVoiture = new ModeleVoiture(res.getInt(12));
              modeleVoiture.setNomModele(res.getString(13));
              result[0].setModele(modeleVoiture);

              Etat etat = new Etat(res.getInt(14));
              etat.setDescrip(res.getString(15));
              result[0].setEtat(etat);
            }
          } finally {
            try {
              if (res != null) {
                res.close();
              }
            } finally {
              if (smt != null) {
                smt.close();
              }
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
        }
      }
    });
    return result[0];
  }

  public Voiture update(final Voiture voiture) {
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          try {
            smt = connection.prepareStatement(UPDATE_VOITURE);
            smt.setString(1, voiture.getNumeroImmatriculation());
            smt.setString(2, voiture.getNumeroChassis());
            smt.setDate(3, new java.sql.Date(voiture.getDateAchat().getTime()));
            smt.setDate(4, new java.sql.Date(voiture.getDatePremiereImmatriculation().getTime()));
            smt.setInt(5, voiture.getNumuroAgglomeration());
            smt.setInt(6, voiture.getNumCentralTel());
            smt.setLong(7, voiture.getKilometrage());
            smt.setLong(8, voiture.getKilometrageFinCirculation());

            smt.setInt(9, voiture.getMarque().getId());
            smt.setInt(10, voiture.getModele().getId());
            smt.setInt(11, voiture.getEtat().getCdeEtat());
            smt.setInt(12, voiture.getId());
            smt.executeUpdate();
           
            MySqlAlerteVoitureDao alerteVoitureDao = new MySqlAlerteVoitureDao();
            for (AlerteVoiture alerte : voiture.getAlertes()) {
              if (alerte.getId() == null) {
                alerteVoitureDao.insert(alerte);
              }
            }
          }
          finally {
            if (smt != null) {
              smt.close();
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
        }
      }
    });
    return voiture;
  }

  public Voiture findByImmatriculation(String immatriculation) {
   
    return null;
  }

  @Override
  public ArrayList<Voiture> findAllActif() {
    final ArrayList<Voiture> listeVoiture = new ArrayList<Voiture>();
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          ResultSet res = null;
          try {
            smt = connection.prepareStatement(GET_ALL_VOITURE_ACTIF);
            res = smt.executeQuery();
            while (res.next()) {
              Voiture voiture = new Voiture(res.getInt(1));

              voiture.setNumeroImmatriculation(res.getString(2));
              voiture.setNumeroChassis(res.getString(3));

              Date dateAchat = new Date(res.getDate(4).getTime());
              voiture.setDateAchat(dateAchat);

              Date datePremImmi = new Date(res.getDate(5).getTime());
              voiture.setDatePremiereImmatriculation(datePremImmi);

              voiture.setNumeroAgglomeration(res.getInt(6));
              voiture.setNumCentralTel(res.getInt(7));
              voiture.setKilometrage(res.getLong(8));
              voiture.setKilometrageFinCirculation(res.getLong(9));
             

              MarqueVoiture marqueVoiture = new MarqueVoiture(res.getInt(10));
              marqueVoiture.setLibelle(res.getString(11));
              voiture.setMarque(marqueVoiture);

              ModeleVoiture ModeleVoiture = new ModeleVoiture(res.getInt(12));
              ModeleVoiture.setNomModele(res.getString(13));
              voiture.setModele(ModeleVoiture);

              Etat etat = new Etat(res.getInt(14));
              etat.setDescrip(res.getString(15));
              voiture.setEtat(etat);

              listeVoiture.add(voiture);
            }
          } finally {
            try {
              if (res != null) {
                res.close();
              }
            } finally {
              if (smt != null) {
                smt.close();
              }
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
        }
      }
    });
    return listeVoiture;
  }
}
TOP

Related Classes of dao.implementation.mysql.voiture.MySqlVoitureDao

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.