Package dao.implementation.mysql.voiture

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

package dao.implementation.mysql.voiture;


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;

import dao.IDao;
import dao.implementation.mysql.AccessMySql;

import modele.commun.TypeUnite;
import modele.voiture.FicheEntretien;
import modele.voiture.TypeEntretien;
import modele.voiture.Voiture;

/**
* Class MySqlFicheEntretien
* @author Kasandra
*
*/
public class MySqlFicheEntretien implements IDao<FicheEntretien>{

  private static final String INSERT_FICHE_ENTRETIEN = "insert into tficheentretienvoiture (idVoit, descriptionEntret, dateDernierEntret,  dateProchainEntret, idTypeEntret, kmDernierVoitEntret,  kmProchainVoitEntret, kmPrevenirAvantEntret, coutEntret, nombreUniteEntret, idTypeUnite) values (?,?, ?,?, ?,?, ?,?, ?, ?,?)";
  private static final String UPDATE_FICHE_ENTRETIEN = "update tficheentretienvoiture set idVoit = ?, descriptionEntret = ?, dateDernierEntret = ?,  dateProchainEntret = ?, idTypeEntret = ?, kmDernierVoitEntret = ?,  kmProchainVoitEntret = ?, kmPrevenirAvantEntret = ?, coutEntret = ?, nombreUniteEntret = ?, idTypeUnite = ?  where idFicheEntret = ?";
  private static final String DELETE_FICHE_ENTRETIEN = "delete from tficheentretienvoiture where idFicheEntret = ?";
  private static final String GET_ALL_FICHE_ENTRETIEN = "SELECT idFicheEntret, tvoiture.idVoit, tvoiture.numIdentifAggloVoit, descriptionEntret, dateDernierEntret, dateProchainEntret, ttypeentretien.idTypeEntret, ttypeentretien.descripTypeEntret, kmDernierVoitEntret, kmProchainVoitEntret, kmPrevenirAvantEntret, coutEntret, nombreUniteEntret, ttypeunite.idTypeUnite, ttypeunite.descripTypeUnite FROM tficheentretienvoiture, tvoiture, ttypeentretien, ttypeunite WHERE tficheentretienvoiture.idVoit = tvoiture.idVoit AND tficheentretienvoiture.idTypeEntret = ttypeentretien.idTypeEntret AND tficheentretienvoiture.idTypeUnite = ttypeunite.idTypeUnite";
  private static final String GET_FICHE_ENTRETIEN_BY_ID = GET_ALL_FICHE_ENTRETIEN + " where idFicheEntret = ?";


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

  public FicheEntretien find(final int id) {
    final FicheEntretien[] result = new FicheEntretien[1];
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          ResultSet res = null;
          try {
            smt = connection.prepareStatement(GET_FICHE_ENTRETIEN_BY_ID);
            smt.setInt(1, id);
            res = smt.executeQuery();
            if (res.next()) {
              result[0] = new FicheEntretien(res.getInt(1));
             
              Voiture voiture = new Voiture(res.getInt(2));
              voiture.setNumeroAgglomeration(res.getInt(3));
              result[0].setVoiture(voiture);
             
              TypeEntretien typeEntretien = new TypeEntretien(res.getInt(2));
              typeEntretien.setLibelle(res.getString(3));
              result[0].setTypeEntretien(typeEntretien);
             
              TypeUnite typeUnite = new TypeUnite(res.getInt(2));
              typeUnite.setLibelle(res.getString(3));
              result[0].setTypeUnite(typeUnite);
            }
          } 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<FicheEntretien> findAll() {
    final ArrayList<FicheEntretien> listeFicheEntretien = new ArrayList<FicheEntretien>();
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          ResultSet res = null;
         
          try {
            smt = connection.prepareStatement(GET_ALL_FICHE_ENTRETIEN);
            res = smt.executeQuery();
            while (res.next()) {
              FicheEntretien ficheEntretien = new FicheEntretien(res.getInt(1));             
             
              Voiture voiture = new Voiture(res.getInt(2));
              voiture.setNumeroAgglomeration(res.getInt(3));
              ficheEntretien.setVoiture(voiture);
             
              ficheEntretien.setLibelle(res.getString(4));
             
              Date dateDernierEntret = new Date(res.getDate(5).getTime());              
              ficheEntretien.setDateDernierEntretien(dateDernierEntret);
             
              Date dateProchainEntret = new Date(res.getDate(6).getTime());
              ficheEntretien.setDateProchaineEntretien(dateProchainEntret);
             
              TypeEntretien typeEntretien = new TypeEntretien(res.getInt(7));
              typeEntretien.setLibelle(res.getString(8));
              ficheEntretien.setTypeEntretien(typeEntretien);
             
              ficheEntretien.setKmDernierEntretien(res.getLong(9));
              ficheEntretien.setKmProchainEntretien(res.getLong(10));
              ficheEntretien.setKmPrevenirAvantEntretien(res.getLong(11));
             
              ficheEntretien.setCoutEntretien(res.getDouble(12));
              ficheEntretien.setNbUnite(res.getInt(13));
             
              TypeUnite typeUnite = new TypeUnite(res.getInt(14));
              typeUnite.setLibelle(res.getString(15));
              ficheEntretien.setTypeUnite(typeUnite);

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

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

            psmt = connection.prepareStatement(INSERT_FICHE_ENTRETIEN);

            psmt.setInt(1,ficheEntretien.getVoiture().getId());
            psmt.setString(2,ficheEntretien.getLibelle());
           
            psmt.setDate(3,new java.sql.Date(ficheEntretien.getDateDernierEntretien().getTime()));
            psmt.setDate(4,new java.sql.Date(ficheEntretien.getDateProchaineEntretien().getTime()));
           
            psmt.setInt(5,ficheEntretien.getTypeEntretien().getId());
            psmt.setLong(6,ficheEntretien.getKmDernierEntretien());
            psmt.setLong(7,ficheEntretien.getKmProchainEntretien());
            psmt.setLong(8,ficheEntretien.getKmPrevenirAvantEntretien());
           
            psmt.setDouble(9,ficheEntretien.getCoutEntretien());
            psmt.setInt(10,ficheEntretien.getNbUnite());
            psmt.setInt(11,ficheEntretien.getTypeUnite().getId());

            psmt.executeUpdate();
          }
          finally {
            if (psmt != null) {
              psmt.close();
            }
          }
          Statement smt = null;
          ResultSet res = null;
          try {
            smt = connection.createStatement();
            res = smt.executeQuery("select idFicheEntret,  tvoiture.idVoit, tvoiture.numIdentifAggloVoit, dateDernierEntret,  dateProchainEntret, typeentretien.idTypeEntret, ttypeentretien.descripTypeEntret, kmDernierVoitEntret,  kmProchainVoitEntret, kmPrevenirAvantEntret, coutEntret, nombreUniteEntret, ttypeunite.idUnite, ttypeunite.descripTypeUnite from tficheentretienvoiture, tvoiture, ttypeentretien, ttypeunite where tficheentretienvoiture.idVoit = tvoiture.idVoit and tficheentretienvoiture.idTypeEntret = ttypeentretien.idTypeEntret and tficheentretienvoiture.idTypeUnite= ttypeunite.idTypeUnite and idFicheEntret = LAST_INSERT_ID()");
            if (res.next()) {
              result[0] = new FicheEntretien(res.getInt(1))
              result[0].setLibelle(res.getString(2));
             
              Voiture voiture = new Voiture(res.getInt(3));
              voiture.setNumeroAgglomeration(res.getInt(4));
              result[0].setVoiture(voiture);
             
              Date dateDernierEntret = new Date(res.getDate(5).getTime());             
              result[0].setDateDernierEntretien(dateDernierEntret);
             
              Date dateProchainEntret = new Date(res.getDate(6).getTime());             
              result[0].setDateProchaineEntretien(dateProchainEntret);
             
              TypeEntretien typeEntretien = new TypeEntretien(res.getInt(7));
              typeEntretien.setLibelle(res.getString(8));
              result[0].setTypeEntretien(typeEntretien);
             
              result[0].setKmDernierEntretien(res.getLong(9));
              result[0].setKmProchainEntretien(res.getLong(10));
              result[0].setKmPrevenirAvantEntretien(res.getLong(11));
             
              result[0].setCoutEntretien(res.getDouble(12));
              result[0].setNbUnite(res.getInt(13));

             
              TypeUnite typeUnite = new TypeUnite(res.getInt(14));
              typeUnite.setLibelle(res.getString(15));
              result[0].setTypeUnite(typeUnite);
             
             
            }
          } finally {
            try {
              if (res != null) {
                res.close();
              }
            } finally {
              if (smt != null) {
                smt.close();
              }
            }
          }
        } catch (SQLException e) {
          throw new RuntimeException(e);
         
        }
      }
    });
    return result[0];
  }

  public FicheEntretien update(final FicheEntretien ficheEntretien) {
    AccessMySql.withConnection(new AccessMySql.RunnableWithConnection() {
      public void runWithconnection(Connection connection) {
        try {
          PreparedStatement smt = null;
          try {
            smt = connection.prepareStatement(UPDATE_FICHE_ENTRETIEN);
            smt.setInt(1, ficheEntretien.getVoiture().getId());
            smt.setString(2, ficheEntretien.getLibelle());
           
           
            smt.setDate(3, new java.sql.Date(ficheEntretien.getDateDernierEntretien().getTime()));
            smt.setDate(4, new java.sql.Date(ficheEntretien.getDateProchaineEntretien().getTime()));
           
            smt.setInt(5, ficheEntretien.getTypeEntretien().getId());
           
            smt.setLong(6, ficheEntretien.getKmDernierEntretien());
            smt.setLong(7, ficheEntretien.getKmProchainEntretien());
            smt.setLong(8, ficheEntretien.getKmPrevenirAvantEntretien());
           
            smt.setDouble(9, ficheEntretien.getCoutEntretien());
            smt.setInt(10, ficheEntretien.getNbUnite());
           
            smt.setInt(11, ficheEntretien.getTypeUnite().getId());
            smt.setInt(12, ficheEntretien.getId());

            smt.executeUpdate();
          }
          finally {
            if (smt != null) {
              smt.close();
            }
          }
        } catch (SQLException e) {
          e.printStackTrace();
          throw new RuntimeException(e);
         
        }
      }
    });
    return ficheEntretien;
  }


}
TOP

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

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.