/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package Physique; import Metier.Categorie; import Metier.Livre; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; public class LivreServiceJDBCImpl implements LivreServiceJDBC { ConnectionService conn; CategorieServiceJDBC cs = PhysiqueFactory.getCategorieServiceJDBC(); protected LivreServiceJDBCImpl() { try { conn = ConnectionService.getInstance(PhysiqueFactory.getBase(), PhysiqueFactory.getHost(), PhysiqueFactory.getNomBase(), PhysiqueFactory.getDbDriver(), PhysiqueFactory.getNdc(), PhysiqueFactory.getMdp()); } catch (Exception ex) { System.err.println("Erreur livre constructeur" + ex); } } @Override public ArrayList<Livre> getAllOrderByOrigineAndCategorieAndTitre(){ ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre ORDER BY origine, idCategorie, titre"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getAllOrderByOrigineAndCategorieAndTitre" + ex); } return livres; } @Override public ArrayList<Livre> getAll() { ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getall" + ex); } return livres; } @Override public ArrayList<Livre> getByAuteur(String auteur) { ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE auteur LIKE'%" + auteur + "%'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByAuteur" + ex); } return livres; } @Override public ArrayList<Livre> getByTitle(String titre) { ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE titre LIKE'%" + titre + "%'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByTitle" + ex); } return livres; } @Override public ArrayList<Livre> getByCategorie(Categorie categorie) { ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE idCategorie ='" + categorie.getId() + "'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(categorie); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByCategorie" + ex); } return livres; } @Override public void add(Livre livre) { try { Statement st = conn.getStatement(); st.executeUpdate("INSERT INTO livre(auteur, titre, position, " + "volume, exemplaire, annee, prix, idCategorie, origine, id) VALUES ('" + livre.getAuteur() + "', '" + livre.getTitre() + "', '" + livre.getPosition() + "', '" + livre.getVolume() + "', '" + livre.getExemplaire()+ "', '" + livre.getAnnee() + "', '" + livre.getPrix() + "', '" + livre.getCatégorie().getId() + "', '" + livre.getOrigine()+ "', '" + livre.getId() + "')"); } catch (Exception ex) { System.err.println("Erreur livre add " + ex); } } @Override public ArrayList<Livre> getLivreByOrigineEtCategorie(String origine, Categorie categorie) { ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE origine ='" + origine + "' AND idCategorie='" + categorie.getId() +"'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.out.println("Erreur livre getLivreByOrigineEtCategorie" + ex); } return livres; } @Override public void update(Livre livre) { try { Statement st = conn.getStatement(); st.executeUpdate("UPDATE livre SET auteur='" + livre.getAuteur() + "', titre='" + livre.getTitre() + "', position='" + livre.getPosition() + "', volume='" + livre.getVolume() + "', exemplaire='" + livre.getExemplaire() + "', annee='" + livre.getAnnee() + "', prix='" + livre.getPrix() + "', idCategorie='" + livre.getCatégorie().getId() + "', origine='" + livre.getOrigine() +"' WHERE id ='" + livre.getId() + "'"); } catch (Exception ex) { System.err.println("Erreur livre update" + ex); } } @Override public void remove(Livre livre) { try { Statement st = conn.getStatement(); st.executeUpdate("DELETE FROM livre WHERE id ='" + livre.getId() + "'"); } catch (Exception ex) { System.err.println("Erreur livre remove" + ex); } } @Override public void removeByCategorie(Categorie categorie) { try { Statement st = conn.getStatement(); st.executeUpdate("DELETE FROM livre WHERE idCategorie ='" + categorie.getId() + "'"); } catch (Exception ex) { System.err.println("Erreur livre removeByCategorie" + ex); } } @Override public ArrayList<Livre> getByAuteurEtTitre(String auteur, String titre, boolean etat) { ArrayList<Livre> livres = new ArrayList(); String lien; if(etat){ lien = "OR"; } else{ lien = "AND"; } try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE auteur LIKE'%" + auteur +"%' " + lien + " titre LIKE'%" + titre + "%'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByAuteurEtTitre" + ex); } return livres; } @Override public ArrayList<Livre> getByTitreEtCategorie(String titre, Categorie categorie, boolean etat) { ArrayList<Livre> livres = new ArrayList(); String lien; if(etat){ lien = "OR"; } else{ lien = "AND"; } try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE titre LIKE'%" + titre +"%' " + lien + " idCategorie ='" + categorie.getId() + "'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(categorie); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByTitreEtCategorie" + ex); } return livres; } @Override public ArrayList<Livre> getByAuteurEtCategorie(String auteur, Categorie categorie, boolean etat) { ArrayList<Livre> livres = new ArrayList(); String lien; if(etat){ lien = "OR"; } else{ lien = "AND"; } try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE auteur LIKE'%" + auteur +"%' " + lien + " idCategorie ='" + categorie.getId() +"'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(categorie); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByAuteurEtCategorie" + ex); } return livres; } @Override public ArrayList<Livre> getByAuteurEtTitreEtCategorie(String auteur, String titre, Categorie categorie, boolean etat1, boolean etat2) { ArrayList<Livre> livres = new ArrayList(); String lienAuteurTitre, lienTitreCategorie; if(etat1){ lienAuteurTitre = "OR"; } else{ lienAuteurTitre = "AND"; } if(etat2){ lienTitreCategorie = "OR"; } else{ lienTitreCategorie = "AND"; } try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE auteur LIKE'%" + auteur + "%' " + lienAuteurTitre + " titre LIKE'%" + titre +"%' " + lienTitreCategorie + " idCategorie ='" + categorie.getId() +"'"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(categorie); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getByAuteurEtTitreEtCategorie" + ex); } return livres; } @Override public ArrayList<String> getAllOrigineLivre() { ArrayList<String> origines = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT origine FROM livre"); while (rs.next()) { if(!origines.contains(rs.getString("origine"))){ origines.add(rs.getString("origine")); } } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getAllOrigineLivre" + ex); } return origines; } @Override public Livre getById(String id) { Livre livre = null; try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE id ='" + id +"'"); rs.next(); livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(id); rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getById" + ex); } return livre; } @Override public boolean existenceLivre(Livre livre) { boolean exist = false; try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE auteur ='" + livre.getAuteur() + "'AND titre ='" + livre.getTitre() + "'AND annee ='" + livre.getAnnee() + "'AND position ='" + livre.getPosition() + "'AND volume ='" + livre.getVolume() + "'AND origine ='" + livre.getOrigine() + "'"); if(rs.next()){ exist = true; } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre existenceLivre" + ex); } return exist; } @Override public ArrayList<Livre> getLivreMultipleExemplaires() { ArrayList<Livre> livres = new ArrayList(); try { Statement st = conn.getStatement(); ResultSet rs = st.executeQuery("SELECT * FROM livre WHERE exemplaire > 1"); while (rs.next()) { Livre livre = new Livre(rs.getString("auteur"), rs.getString("titre"), rs.getString("position"), rs.getString("volume"), rs.getInt("exemplaire"), rs.getString("annee"), rs.getString("prix"), rs.getString("origine")); livre.setCatégorie(cs.getById(rs.getInt("idCategorie"))); livre.setId(rs.getString("id")); livres.add(livre); } rs.close(); } catch (Exception ex) { System.err.println("Erreur livre getLivreMultipleExemplaires" + ex); } return livres; } }