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