/*
* 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;
}
}