créer une class de connexion avec la base de donnée
bonjour,
je veux créer une class de connection avec ma base de donnée
ensuit je veux juste l'appler dans d'autre class et faire mes requetes
ce que je suis en train de faire actualement
c'est de réecrire le code suivant dans chaque class qui a besoin de la connexion avec la base
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
Connection con = null;
Statement st = null;
ResultSet rs = null;
try
{
Class.forName("org.postgresql.Driver");
System.out.println ("driver etablie");
}
catch(Exception e)
{
System.out.println ("erreur:Driver int" +
"rouvable");
}
//connexion à la base
try
{
String URL = "jdbc:postgresql://localhost:5432/test";
String USER = "postgres";
String PASSWD = "nnnnnn";
con =DriverManager.getConnection(URL,USER, PASSWD);
System.out.println ("connexion base pfe etablie");
}
catch(Exception e)
{
System.out.println ("erreur: base introuvable");
} |
vous pouvez me dire comment declarer ça (me donner le code)??
merci bcp de me répondre
Utilisation d'un Singleton
:D
Tu peut utiliser un Singleton dans ce cas a chaque instance de ton singleton représentant la connexion tu va utiliser la même connexion.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
import java.sql.*;
public class Singleton {
/*
* La méthode getInstance n'est sûr pour les threads
* (possibilité de créer plusieurs Singleton) donc
* on a besoin de sécuriser celle-ci avec synchronized.
*/
public static synchronized Singleton getInstance(){
if (instance == null)
instance = new Singleton();
return instance;
}
private Connection con;
private Singleton(){
try {
//Register the JDBC driver for MySQL.
Class.forName("com.mysql.jdbc.Driver");
//Define URL of database server for
// database named mysql on the localhost
// with the default port number 3306.
String url = "jdbc:mysql://localhost:3306/delphi";
//Get a connection to the database for a
// user named root with a blank password.
// This user is the default administrator
// having full privileges to do anything.
con = DriverManager.getConnection(url,"root", "root");
//Display URL and connection information
System.out.println("URL: " + url);
System.out.println("Connection: " + con);
//Get a Statement object
//stmt = con.createStatement();
}catch( Exception e ) {
e.printStackTrace();
}//end catch
System.out.println("Construction du Singleton");
}
private static Singleton instance;
public static void main(String[] args) {
Singleton s = Singleton.getInstance();
}
public Connection getCon() {
return con;
}
} |
l'instanciation se fait comme suit:
Code:
1 2 3
|
Singleton s = Singleton.getInstance();
ResultSet resultset = s.getCon().createStatement().executeQuery("Select * from Pieces"); |
Et en plus vous allez gagner en performance vu ne nombre d'accès a la base de donnée restreint.
C'est ma premier réponse sur ce Forum alors donne moi ton avis en retour
Courage