Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONNEXION À UNE BASE DE DONNÉES ACCESS


Information sur le tutorial

Catégorie :JDBC Date de création : 21/10/2008 22:36:48 Vu : 3 248 fois

Note :
Aucune note

Commentaire sur cette source (14)
Ajouter un commentaire et/ou une note


Description

j'ai remarqué que cette question est posée fréquemment sur le forum. Alors voilà une classe MSAccessBase qui fournit une interface de connexion et d'émission de requêtes vers toute base Access..

il n'est pas nécessaire de créer un compte ODBC pour utiliser cette classe..

Tutorial

/*

* Classe : MSAccessBase

* @author : Chatbour

* @date : 21 Octobre 2008

*/


import java.sql.*;


public class MSAccessBase {

// Chemin de la base

private String path;

// Nom d'utilisateur

private String user;

// Mot de passe

private String password;

// Connection vers la base

private Connection connection;


/* Constructeur */

public MSAccessBase(String path, String user, String password) {

this.path = path;

this.user = user;

this.password = password;

}



/*

* Connection à la base

* @return : true si la connexion est réussite, false si échouillée

*/

public boolean connect() {

try {

// Chargement du driver ODBC

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// Connexion à la base

String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + path;

connection = DriverManager.getConnection(connectionString, user, password);

}

catch (ClassNotFoundException e) {

System.out.println("Problème avec le driver ODBC");

return false;

}

catch (SQLException e) {

System.out.println("Impossible de se connecter à la base");

return false;

}


return true;

}



/*

* Déconnexion de la base

* @return : true si la déconnexion est réussite, false sinon

*/

public boolean disconnect() {

try {

connection.close();

return true;

}

catch (SQLException e) {

return false;

}

}



/*

* Envoi d'une requête de séletion

* @param : sql

* @return : result

*/

public ResultSet SQLSelect(String sql) throws SQLException {

Statement statement = null;

ResultSet result = null;

try {

statement = connection.createStatement();

result = statement.executeQuery(sql);

return result;

}

catch (SQLException e) {

result.close();

statement.close();

return null;

}

}



/*

* Envoi d'une requête de mise à jour (insert, update, delete)

* @param : sql

*/

public void SQLUpdate(String sql) throws SQLException {

Statement statement = null;

try {

statement = connection.createStatement();

statement.executeUpdate(sql);

}

catch (SQLException e) {

statement.close();

}

}

}

21 octobre 2008 22:43:33 :
Amélioration de la mise en forme..
21 octobre 2008 22:49:39 :
Réamélioration de la mise en forme ;)
signaler à un administrateur
Commentaire de Chatbour le 21/10/2008 22:52:40

j'ai essayé d'indenter le code en vain :(

signaler à un administrateur
Commentaire de sounayassine le 01/11/2008 12:59:45

merci
tu peut me donner comment accédé à partir de fichier xml à une base de donnée
merci de me répondre

signaler à un administrateur
Commentaire de Chatbour le 01/11/2008 18:06:46

De rien,

j'ai pas vraiment compris ta requête.. peut être que tu dois poster cette question dans le forum..

signaler à un administrateur
Commentaire de azcx42 le 02/11/2008 16:18:49

je veux mettre avec mon delphi une connexion a distance tcp pour communiquer mon programme avec ma base de données
la question quel base de données et comment avec quel myen
juste un petit exemple pour demarrer
je suis perdu

signaler à un administrateur
Commentaire de Chatbour le 02/11/2008 17:40:23

cherches sur http://www.delphifr.com/

signaler à un administrateur
Commentaire de casa_sniper le 08/11/2008 14:35:51

merci il est excelent ce cours , si on veu etabilr une connection vers une bdd via un reseau local ,Comment on fait?? il nya pa un lien explicatif ?? merci precedement

signaler à un administrateur
Commentaire de Chatbour le 08/11/2008 16:05:19

Tu dois modifier le chemin de ta base, le reste c'est kif-kif :

DBQ=//xxx.xxx.xx.xx/dossier_partagé/bdd_access.mdb

bonne continuation..

signaler à un administrateur
Commentaire de Passarinho44 le 18/11/2008 11:21:56

Bonjour,

Comment je fais pour récupérer mon nom d'utilisateur et mon mot de passe dans Access2007?

Merci d'avance =)

signaler à un administrateur
Commentaire de lepiratox le 01/12/2008 18:35:45

est ce que vous pouvez me donner un exemple complet pour mieux comprendre et merciii

signaler à un administrateur
Commentaire de Chatbour le 01/12/2008 19:32:32

public class Test {
    public static void main(String[] args) throws Exception {
        
        // Création d'un objet MSAccessBase
        MSAccessBase base = new MSAccessBase("base.mdb", "", "");
        
        if (base.connect() == true) {
            System.out.println("Connection established.");
        }
        else {
            System.out.println("Connection failed.");
            return;
        }
        
        // Emission d'une requête et affichage du résultat
        ResultSet rs = base.SQLSelect("select nom from Client");
        System.out.println("Liste des clients :");
        while (rs.next()) {
            System.out.println(rs.getString("nom"));
        }
        rs.close();
        
        // Ajout d'un nouveau client
        base.SQLUpdate("delete from Client where numero = 112");
        
        // Déconnexion de la base
        base.disconnect();        
    }
}

signaler à un administrateur
Commentaire de Chatbour le 01/12/2008 19:34:38

désolé pour la petite faute dans l'avant dernier commentaire..

il s'agit d'une suppression et non pas d'un ajout..

signaler à un administrateur
Commentaire de green68 le 16/12/2008 13:27:11

Salut,

  Merci pour ton tuto : clair, net et concis.

  La note est mérité suite à l'ajout de la class Test.

signaler à un administrateur
Commentaire de green68 le 16/12/2008 13:53:16

Salut,
  
  Juste un petit ajout dans la classe MSAccessBase dans le catch : rajout d'une vérification si "result != null".

public ResultSet SQLSelect(String sql) throws SQLException {
  Statement statement = null;
  ResultSet result = null;
  try {
    statement = connection.createStatement();
    result = statement.executeQuery(sql);
    return result;
  } catch (SQLException e) {
    if (result != null ) result.close();
    statement.close();
    return null;
  }
}

signaler à un administrateur
Commentaire de Chatbour le 16/12/2008 20:34:36

merci beaucoup pour ta contribution green68 :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.