@Override
	public boolean update(Reservation x) 
	{
		Statement stm = null;
		try 
		{
			String req = "UPDATE reservation SET \n" +
                            "datedebut=\""+x.getDateDebut()+"\",\n" +
                            "datefin=\""+x.getDateFin()+"\",\n" +
                            "particulierid="+x.getParticulierId()+",\n" +
                            "chambreid="+x.getChambreId()+" \n" +
                            "WHERE reservationid = "+x.getReservationId()+"\n" +
                            //les lignes suivantes s'assurent qu'aucun conflit n'est créé avec une autre réservation
                            //Notez que MySQL ne permet pas de selectionner directement la table que l'on modifie pendant un update
                            //c'est pourquoi les selections ont un niveau de profondeur additionnel.
                            "and not exists ( select * from (select * from reservation \n" +
                            "                  where (datedebut > \""+x.getDateDebut()+"\"\n" +
                            "                  	and datefin < \""+x.getDateFin()+"\"\n" +
                            "                  or datedebut >\""+x.getDateDebut()+"1\"\n" +
                            "                  	and datefin < \""+x.getDateFin()+"\"\n" +
                            "                  or datedebut <= \""+x.getDateDebut()+"\"\n" +
                            "                  	and datefin >= \""+x.getDateFin()+"\"\n" +
                            "                  )\n" +
                            "                  and reservationid <> "+x.getReservationId()+"\n" +
                            "                  )tempreservation)";		
                        
			if (cnx.createStatement().executeUpdate(req)>0)
			{
				return true;
			}
		}
		catch (SQLException exp)
		{
		}
		finally
		{
			if (stm!=null)
			try {
				stm.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}			
		}
		return false;
	}