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 : 10 526 fois

Note :
Aucune note

Commentaire sur cette source (30)
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 :)

signaler à un administrateur
Commentaire de packo le 20/01/2009 18:46:32

je suis un débutant dans java je voulais créer un application pour gérer une vente et achat quelqu'un peut m aide.
merci a tous et a toutes

signaler à un administrateur
Commentaire de Chatbour le 20/01/2009 19:58:33

Packo -> c'est une question à poser sur le forum, mais après la relire et bien exposer ce que tu cherches..

signaler à un administrateur
Commentaire de Spark le 09/02/2009 16:40:29

dessolé si je me permet de vous répondre trop en retard

voila pour ce qui est de delphi avec base de données a distance , mois j'utilise MyODBC un moteur de base de données gratuit pour MySQL

après installation d'un serveur web avec Mysql , on peu accédé a Mysql avec le moteur Myodbc a partir de Delphi , mais attention a faire tous les privilaire dans le compte utilisateur de la base de données Mysql .

essayez de chercher dans cette direction .
good luck

signaler à un administrateur
Commentaire de yassineSoC le 27/03/2009 12:39:16

merci bcp pour

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

parce que a chaque fois je déclare mon base donnée Sources de
données (ODBC)

signaler à un administrateur
Commentaire de sadabdelali le 01/04/2009 18:49:16

bonjour bravo pour la procédure,mais j'ai 1 ptit prlm que je veux  remplir un jtable mais sans boucle esk possibe le faire grille.setModel(result);

avec grille le nom du jtable et result = statement.executeQuery(sql);

merci pour vous réponse

signaler à un administrateur
Commentaire de Chatbour le 01/04/2009 20:08:44

Salut,

je ne pense pas que ça soit faisable : après un coup d'oeil sur la javadoc, je n'ai pas trouvé de telles méthodes dans les classes JTable et DefaultTableModel..

en tout cas, si tu veux avoir plus de réponses je te conseille de poser la question sur le forum, bien que je comprends pas l'utilité de ce que tu cherches..

bonne chance..

signaler à un administrateur
Commentaire de d3dzied le 09/04/2009 15:36:31

j'ai essai le code mai la connexion n'est pas étabit
la répencse dans le console est impossible de connecté à la base.

import java.util.*;
import java.text.*;
import java.sql.*;
import java.io.*;

public class Base {

/** Creates a new instance of connection */
private Connection conn;

private String path  ;

private String user ;

private String password ;

public Base() {
}

public Base(String path, String user, String password) {
this.path = path;
this.user = user;
this.password = password;
}

public boolean dbConnect() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="
+ path;
conn = 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;
}

public boolean disconnect() {

try {

conn.close();

return true;

}

catch (SQLException e) {

return false;

}

}

public Connection getConn() {
return conn;
}
}
merci!!!

signaler à un administrateur
Commentaire de Chatbour le 09/04/2009 15:51:09

Salut,

vérifies le chemin de ta base Access..

signaler à un administrateur
Commentaire de d3dzied le 10/04/2009 17:39:10

je veut établir une connexion entre mon interface et mon base de donnée accesse
ça le codes code de mon interface de connexion

/*
* Accueil.java
*
* Created on 5 Janvier 2003
*/

import java.awt.*;
import java.awt.Toolkit;
import java.awt.Window;

/**
*
* @author  jbreneliere
*@com.register ( clsid=E4D95996-0C3D-43B2-AF5B-1C2C2E9FCA30, typelib=2F74DC30-6CE7-446E-90AB-F03AF029012C )
*/
//classe prinsipale contenant "main", indispensable pour lexcution de la classe
public class connect extends javax.swing.JFrame {
    
    /** Creates new form Accueil */
    public connect() {
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = getSize();
        if (frameSize.height > screenSize.height)
        {
            frameSize.height = screenSize.height;
        }
        
        if (frameSize.width > screenSize.width)
        {
            frameSize.width = screenSize.width;
        }
        
        setLocation((screenSize.width- frameSize.width) /3,  (screenSize.height - frameSize.height)/3);

        initComponents();

    }
    
    
    private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        jLblBienvenue = new javax.swing.JLabel();
        jBtnClient = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel () ;
        jLabel3 = new javax.swing.JLabel ();
        jTxtNum = new javax.swing.JTextField();
        jTxtpre = new javax.swing.JTextField();
     jPanel1 = new javax.swing.JPanel();
        
        getContentPane().setLayout(new java.awt.GridBagLayout());

        setTitle("Accueil");
        setBackground(new java.awt.Color(255, 255, 204));
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosing(java.awt.event.WindowEvent evt) {
                exitForm(evt);
            }
        });

        jPanel1.setLayout(new java.awt.GridBagLayout());
        
        jLblBienvenue.setFont(new java.awt.Font("Dialog", 1, 20));
        jLblBienvenue.setForeground(new java.awt.Color(190, 0, 0));
        jLblBienvenue.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLblBienvenue.setText(" Connexion ");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.gridheight = 2;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.insets = new java.awt.Insets(17, 38, 42, 32);
        jPanel1.add(jLblBienvenue, gridBagConstraints);
            
        jBtnClient.setForeground(new java.awt.Color(0, 0, 102));
        jBtnClient.setText("connexion");
        jBtnClient.setMaximumSize(new java.awt.Dimension(85, 26));
        jBtnClient.setMinimumSize(new java.awt.Dimension(85, 26));
        jBtnClient.setPreferredSize(new java.awt.Dimension(85, 26));
        jBtnClient.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jBtnconnectionActionPerformed(evt);
                
            }
        });

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 7;
        gridBagConstraints.gridwidth = java.awt.GridBagConstraints.RELATIVE;
        gridBagConstraints.gridheight = java.awt.GridBagConstraints.RELATIVE;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.ipadx = 36;
        gridBagConstraints.insets = new java.awt.Insets(0, 0, 0, 0);
        jPanel1.add(jBtnClient, gridBagConstraints);
        
        
        
        jLabel2.setFont(new java.awt.Font("Dialog", 1, 16));
        jLabel2.setForeground(new java.awt.Color(0, 0, 0));
        jLabel2.setText(" Nom :");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 2;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.ipadx = 72;
        gridBagConstraints.insets = new java.awt.Insets(17, 10, 10, 32);
        jPanel1.add(jLabel2, gridBagConstraints);


jLabel3.setFont(new java.awt.Font("Dialog", 1, 16));
        jLabel3.setForeground(new java.awt.Color(0, 0, 0));
        jLabel3.setText(" Prénom :");
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 4;
        gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
        gridBagConstraints.ipadx = 72;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 10, 32);
        jPanel1.add(jLabel3, gridBagConstraints);

        jTxtNum.setFont(new java.awt.Font("Dialog", 1, 12));
jTxtNum.setForeground(new java.awt.Color(0, 0, 102));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipadx = 60;
gridBagConstraints.insets = new java.awt.Insets(20, 100, 9, 0);
jPanel1.add(jTxtNum, gridBagConstraints);

jTxtpre.setFont(new java.awt.Font("Dialog", 1, 12));
jTxtpre.setForeground(new java.awt.Color(0, 0, 102));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.ipadx = 60;
gridBagConstraints.insets = new java.awt.Insets(0, 100, 9, 0);
jPanel1.add(jTxtpre, gridBagConstraints);

gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 7;
getContentPane().add(jPanel1, gridBagConstraints);

pack();
}
    private void jBtnconnectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnBanquierActionPerformed
         base2 ba = new base2 ();
         ba.dbConnect();
           }
    
    /** Exit the Application */
    private void exitForm(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_exitForm
        System.exit(0);
    }//GEN-LAST:event_exitForm
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        connect con = new connect();        
        con.show();        
    }
      
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBtnClient;
    private javax.swing.JLabel jLblBienvenue;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JTextField jTxtNum;
    private javax.swing.JTextField jTxtpre;
private javax.swing.JPanel jPanel1;
    // End of variables declaration//GEN-END:variables
    
}

mai l'affichage dans le console tout jour impossible de se connecté à la base même les la base se trouve dans le dossier de mon projet

signaler à un administrateur
Commentaire de Chatbour le 10/04/2009 20:09:20

Re,

tu n'as pas spécifié le chemin, login et mot de passe de ta base..

il serait plus adéquat de continuer ta question sur le forum car là tu auras plus de chance à en avoir de réponses..

bonne continuation..

signaler à un administrateur
Commentaire de d3dzied le 11/04/2009 13:25:12

merci pour votre répense
vous m'avez aider plus que mon encadreur
encors merci

signaler à un administrateur
Commentaire de d3dzied le 15/04/2009 03:09:30

slt vous pouvez m'aider svp
je veux verifier la validiter de mon champs texte qui se trouve dans cette interface
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FenText5 extends JFrame implements ActionListener {
public FenText5(){
setTitle ("Saisie de Texte");
setSize(300,120);
Container contenu = getContentPane();
contenu.setLayout(new FlowLayout());

f1 = new JTextField(20);
contenu.add(f1);
f1.addActionListener(this);

bouton = new JButton("copier");
contenu.add(bouton);
bouton.addActionListener(this);

f2 = new JTextField (20);
contenu.add(f2);
f2.setEditable(false);
}
public void actionPerformed (ActionEvent e){
if(e.getSource()==bouton)
{
String texte = f1.getText();
String texte1 =  "1";
if (texte == texte1){
JOptionPane
.showMessageDialog(this,
"Vrais");
}
else{
JOptionPane
.showMessageDialog(this,
"Faux");
}
}
}
private JTextField f1,f2;
private JButton bouton;
}
mais si je le compile il rend toujour que le resultat est faux

signaler à un administrateur
Commentaire de nam90 le 06/05/2009 16:02:36

bonjour à tous,
je souhaite insérer des données dans ma base depuis un fichier mais le problème je ne sais pas comment on le fait vu que je débutes en java. est-ce quelqu'un pourrait m'aider svp.
le fichier pourrait contenir les informations suivantes:

matricule;nomAgent;service;nomEnfant;dateNaissance
exple:
0000;nom1;service informatique;enfant1;10/02/1999.

merci de votre aide.

signaler à un administrateur
Commentaire de Chatbour le 06/05/2009 18:24:39

Salut,

cherches du coté de FileReader..

ce genre de questions est à poser sur le forum, pour avoir plus de chances à recevoir des réponses..

Bonne continuation..

signaler à un administrateur
Commentaire de mseyidna le 18/05/2009 19:25:55

salut je veux une application java avec juilderX sur le titre suivant : simulation de technique de multiplexage CDMA optique ou  OCDMA

c'est un demande urgeant parsque je prepar mon PFE et le soutnance sera le 16/05/2009

et merci

mon mail : ould_seyidna@hotmail.com

signaler à un administrateur
Commentaire de Chatbour le 18/05/2009 19:31:50

ok, tu la veux emballée ? papier cadeau quel genre ? ...

T'es sérieux de nous demander de faire ton pfe à ta place ?!! et toi qu'est-ce que tu vas faire ?!!!

adresses-toi à une SSII !!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,156 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é.