GestionBase.java

import java.sql.*;
import java.net.URL;
import java.io.*;
import java.lang.*;
import java.net.*;
import java.util.*;

public class GestionBase
     {
     
     private String base;
     private String table;
     private String login;
     private String url;

/*********************************************************************************/     
     public GestionBase(String ba, String ta, String lo)
          {
          base=ba;
          table=ta;
          login=lo;
          url="jdbc:postgresql://svrlinux:5432/"+base;
          }
          
     public GestionBase(String ba, String ta, String lo, String ur)
          {
          base=ba;
          table=ta;
          login=lo;
          url=ur+base;
          }
/*********************************************************************************/

public void envoiUpdate (String req)
     {
     try {
          Class.forName("postgresql.Driver");
          //System.out.println("Avant établissement de la connexion!\n");
          Connection contact = DriverManager.getConnection(url,login,"");
          //System.out.println("après établissement de la connexion!\n");
          Statement Requete = contact.createStatement();
          // System.out.println("après CreateStatement!\n");
          //System.out.println("Requete envoyée : ");
          //System.out.println(req);     
          Requete.executeUpdate(req);
          //System.out.println( "après ExecuteUpdate de la requête!\n" );
          Requete.close();
          contact.close();
           } // fin try
      catch (SQLException e) { System.out.println("Exception SQL!"); }
           
      catch(ClassNotFoundException e) { System.out.println("deuxième exception!"); }
      }
      
/*************************************************************************************/

public ResultSet envoiRequete (String req)  
                         //Envoi d'une requete (req) et retourne la reponse
          {
                    
     
      ResultSet resultatSet=null;        
      try {
         // Création d'un objet 
         Class.forName("postgresql.Driver");

         // Création d'une liaison avec la base de données spécifiée
         Connection contact = DriverManager.getConnection(url,login,"");

         //System.out.println("après établissement de la connexion!\n");
         
         // Un objet Statement est nécessaire pour les requêtes SQL au pilote
         Statement Requete = contact.createStatement();
         

         //System.out.println("après CreateStatement!\n");

         //System.out.println("Requete envoyée : ");
         //System.out.println(req);     
         // Création d'une requête, puis d'un objet ResultSet
         
         resultatSet = Requete.executeQuery(req);
         //System.out.println( "après ExecutesQuery de la requête!\n" );

                
         //resultatSet.close();
         Requete.close();
         
         contact.close();
        
           }    // fin try
      catch (SQLException e) { System.out.println("Exception SQL!"); }
           
      catch(ClassNotFoundException e) { System.out.println("deuxième exception!"); }
       
        return(resultatSet);           
      
      }  //fin 
      
//***********************************************************************************************

public int nbConnections(String Whichadr)  //méthode qui renvoie le nombre de connections à WHichadr
          {                                                  // et qui affiche le resultat si Affiche=1
          String requete;
          int exist=0;
          ResultSet reponseRequete=null;
          try
               {
               requete="SELECT * FROM "+table+" WHERE url LIKE '"+Whichadr.toString()+"'";
               reponseRequete=this.envoiRequete(requete);             //envoi de la requete
               reponseRequete.first();                              // on se positionne à la premiere ligne de la reponse
               exist = reponseRequete.getInt("nbconnection");    // on recupere le nombre de connexions
               }
          catch(SQLException e) {System.out.println("erreur SQL dans NbConnections de GestionBase "+e.toString());}
          catch(Exception e) {exist=0;} //dans ce cas, c'est que l'url n'existe pas dans la base}
          
          return(exist);
          }

/**********************************************************************************************/

public void ajouteIncrementeActualise(String adr)  // incrémenter le nb de connexion à 'Adr'
          {
          int nbConnexion=0;
          
          String date=construitDate(); //recuperation de la date
          

          try{
              nbConnexion=this.nbConnections(adr);  //on recupere le nb de connexion à l'adresse voulue
              
              if (nbConnexion<=0) //si il n'y a pas encore eu de connection à l'adresse voulue
                        {
                        String req="INSERT INTO "+table+" VALUES('"+adr.toString()+"',1,'"+date+"')";
                    this.envoiUpdate(req);     
                        }
              else
                        {
                        nbConnexion++ ; //incrementation du nombre de connections
                        String requete="UPDATE "+table+" SET nbconnection="+nbConnexion+", dernier_acces='"+date+"' WHERE url like '"+adr+"'";
                        this.envoiUpdate(requete);   //on envoie l'update     
                        }
             }
          catch(Exception e) {System.out.println("Erreur dans la méthode ajouteIncremente de la classe GestionBase");}
          }
          
//******************************************************************************************************

private String construitDate()
     {
     Calendar date=Calendar.getInstance();  //recuperation de la date !!
     String result="";
     
     int annee=date.get(Calendar.YEAR);
     result=annee+"";
     
     int mois=date.get(Calendar.MONTH);
     result=result+(mois<10?"/0":"/")+mois;
     
     int jour=date.get(Calendar.DAY_OF_MONTH);
     result=result+(jour<10?"/0":"/")+jour;
     
     int heure=date.get(Calendar.HOUR_OF_DAY);
     result=result+(heure<10?" 0":" ")+heure;
     
     int minute=date.get(Calendar.MINUTE);
     result=result+(minute<10?":0":":")+minute;
     
     int seconde=date.get(Calendar.SECOND);
     result=result+(seconde<10?":0":":")+seconde;
     
     return(result);
     }


//******************************************************************************************************          

public static void main (String args[])
          {
          GestionBase gest = new GestionBase("projet","information","daillyn");
          
          System.out.println("l'Url existe : "+gest.nbConnections("http://www.yahoo.com"));
          gest.ajouteIncrementeActualise("http://www.yahoo.com");
          
          
          //gest.connectUrl();
          }
          

//******************************************************************************************************          

}