IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Eclipse Discussion :

Configuration d'Eclipse pour utiliser une BDD Access


Sujet :

Eclipse

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Configuration d'Eclipse pour utiliser une BDD Access
    Bonjour,

    J'aimerais connaitre la configuration à apporter à Eclipse pour pouvoir utiliser une BDD Access,
    J'ai pour l'instant configuré odbcad32.exe et ajouté un utilisateur.
    Et si mes souvenir sont bon; il me reste alors à configurer Eclipse pour qu'il prenne en compte cet utilisateur pour que le code suivant puisse marcher.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package com.persistance;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
     
    public class ConnectionBD {
     
    		private static String url = "jdbc:odbc:AMG_Fechoz";
     
    		private static String user = "";
     
    		private static String passwd = "";
     
    		private static Connection connect;
     
    		public static Connection getInstance(){
    			if(connect == null){
    				try {
    					String pilote = "sun.jdbc.odbc.JdbcOdbcDriver"; 
    					Class.forName(pilote); 
    					connect = DriverManager.getConnection(url, user, passwd);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    			return connect;	
    		}	
    	}
    J'ai aussi configuré Eclipse pour qu'il utilise le "jre7x86", je pensais que cela aurait suffit mais non, il bloque au code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @Override
    	public boolean create(Affaire a)
    	{
            boolean ok;
    		try
    		{
    			String sqlAjout = "insert into Affaire values(" + a.getNumAffaire() + ",'" + a.getDesignation() + "')";
    	        this.connect.createStatement().executeQuery(sqlAjout);
    	        ok = true;
    	        this.connect.close();
    	    }
    		catch(Exception e)
    		{
    			ok = false;
    		}
    		return ok;
    	}
    il me dit que lors de l'utilisation de cette fonction il y a un problème. Je ne comprend pas, j'ai du raté un passage lors de la configuration.
    Pourriez-vous m'aider, s'il vous plait? D'avance, merci.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Dans ta méthode create, dans le bloc catch, trace l'erreur (e.printStackTrace() au minimum), et tu auras (et on aura) plus d'informations au sujet de ce qui ne va pas.

    Par ailleurs, la fermeture de la connexion dans cette méthode est une très mauvaise idée, d'autant plus que tu gères ta connexion comme un singleton : tu ne pourras créer qu'une seule affaire et ensuite, tu ne pourras plus rien faire, parce que ta connexion sera fermée, et qu'aucune autre ne pourra être créée.
    Tu devrais avoir un méthode comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public static Connection getInstance(){
       if(connect == null || connect.isClosed() ){
    				....
       }
       return connect;	
    }
    et ajouter une méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static void close(){
       if(connect != null && !connect.isClosed() ){
          try {
              connect.close();
          } catch(SQLException e) {
               e.printStackTrace();
          }
       }
    }
    que tu appelleras à la fermeture de ton programme (soit par évènement de fermeture de ta JFrame si tu en as une, soit pas shutdownhook, par exemple)

    Le this.connect me semble aussi suspect : si la classe qui contient ta méthode create tient la référence du singleton, et que tu es obligé d'en changer (parce que la connexion a été perdue par exemple), tu auras une classe avec une connexion inutilisable. Comme tu as fait un singleton, autant l'appeler par ConnectionBD.getInstance().


    PS: Sinon ton problème n'est pas particulier à Eclipse, c'est de l'accès à base de données en java/jdbc.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Inscrit en
    Février 2013
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2013
    Messages : 54
    Points : 65
    Points
    65
    Par défaut
    Pour ma part ce code fonctionne parfaitement sur une BDD Access version 2003. Cela t'aidera, je l'espère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public static Connection getInstAccess(){
    	try {
    		// Chargement du driver ODBC
    		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     
    		// Connexion à la base
    		String connectionString = "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=//192.168.1.106/fichiers/indicateur.mdb" ;
    		//Driver={MicroSoft} Access Driver (*.mdb)
    		connect_access= DriverManager.getConnection(connectionString);
    	} catch (ClassNotFoundException e) {
    		System.out.println("Problème avec le driver ODBC");
    	} catch (SQLException e) {
    		System.out.println(e.getMessage());
    		System.out.println("Impossible de se connecter à la base");
    	}
    	return connect_access; 
    }

Discussions similaires

  1. [AC-2003] Comment utiliser une table access pour 2 fichiers différents ?
    Par bigounet dans le forum Access
    Réponses: 2
    Dernier message: 08/04/2012, 22h45
  2. [Dev-Pascal] Configuration pour utiliser une version récente de Free Pascal
    Par Henry-P dans le forum Autres IDE
    Réponses: 1
    Dernier message: 06/01/2009, 16h43
  3. Comment Configurer Eclipse pour utiliser SWT
    Par brahim_SUPTEM dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 18/05/2007, 19h31
  4. [ODBC] Quitter l'interface pour accéder à une BDD Access
    Par tigzirt dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2006, 13h33
  5. Quel logiciel utiliser pour shématiser une bdd relationnel
    Par MrEddy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 22/07/2005, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo