/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Physique; import Metier.Armoire; import Metier.Etagere; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; public class ArmoireServiceJDBCImpl implements ArmoireServiceJDBC { EtagereServiceJDBC es = PhysiqueFactory.getEtagereService(); ConnectionService conn; protected ArmoireServiceJDBCImpl() { try { conn = ConnectionService.getInstance(PhysiqueFactory.getBase(), PhysiqueFactory.getHost(), PhysiqueFactory.getNomBase(), PhysiqueFactory.getDbDriver(), PhysiqueFactory.getNdc(), PhysiqueFactory.getMdp()); } catch (Exception ex) { System.err.println("Erreur Armoire constructeur" + ex); } } @Override public void add(Armoire armoire) { try { Statement st = conn.getStatement(); String idEtagere = ""; for (int i = 0; i < armoire.getEtageres().size(); i++) { idEtagere += armoire.getEtageres().get(i).getId() + ";"; } st.executeUpdate("INSERT INTO armoire(nbEtagere, charArmoire, idEtagere) VALUES ('" + armoire.getEtageres().size() + "', '" + armoire.getCharArmoire() + "', '" + idEtagere + "')"); ResultSet rs = st.executeQuery("SELECT * FROM armoire WHERE nbEtagere ='" + armoire.getEtageres().size() + "' AND charArmoire='" + armoire.getCharArmoire() + "' AND idEtagere='" + idEtagere + "'"); while (rs.next()) { armoire.setId(rs.getInt("id")); } rs.close(); } catch (Exception ex) { System.err.println("Erreur armoire add" + ex); } } @Override public void update(Armoire armoire) { try { Statement st = conn.getStatement(); String idEtagere = "", sql; if (armoire.getEtageres() != null) { for (int i = 0; i < armoire.getEtageres().size(); i++) { idEtagere = armoire.getEtageres().get(i).getId() + ";"; } sql = "UPDATE armoire SET nbEtagere='" + armoire.getEtageres().size() + "', charArmoire='" + armoire.getCharArmoire() + "', idEtagere='" + idEtagere + "' WHERE id ='" + armoire.getId() + "'"; } else{ sql = "UPDATE armoire SET nbEtagere='" + armoire.getEtageres().size() + "', charArmoire='" + armoire.getCharArmoire() + "' WHERE id ='" + armoire.getId() + "'"; } st.executeUpdate(sql); } catch (Exception ex) { System.err.println("Erreur armoire update" + ex); } } @Override public void remove(Armoire armoire) { try { Statement st = conn.getStatement(); st.executeUpdate("DELETE FROM armoire WHERE id ='" + armoire.getId() + "'"); } catch (Exception ex) { System.err.println("Erreur armoire remove" + ex); } } @Override public ArrayList<Armoire> getAll() { ArrayList<Armoire> armoires = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM armoire"); while (rs.next()) { String s = rs.getString("idEtagere"); Armoire armoire = new Armoire(rs.getString("charArmoire")); if (!s.equals("null") && !s.equals("")) { ArrayList<Etagere> etageres = new ArrayList(); String[] split = s.split(";"); for (String split1 : split) { etageres.add(es.getById(Integer.parseInt(split1))); } armoire.setId(rs.getInt("id")); armoire.setEtageres(etageres); } armoires.add(armoire); } rs.close(); } catch (Exception ex) { System.err.println("Erreur Armoire getall" + ex); } return armoires; } @Override public Armoire getById(int id) { Armoire armoire = null; try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM armoire WHERE id ='" + id + "'"); while (rs.next()) { armoire = new Armoire(rs.getString("charArmoire")); armoire.setId(id); String s = rs.getString("idEtagere"); if (!s.equals("null") && !s.equals("")) { String[] split = s.split(";"); ArrayList<Etagere> etageres = new ArrayList(); for (String split1 : split) { etageres.add(es.getById(Integer.parseInt(split1))); } armoire.setEtageres(etageres); } } rs.close(); } catch (Exception ex) { System.err.println("Erreur armoire getbyid" + ex); } return armoire; } }