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

JDBC Java Discussion :

Connexion avec SQL Server Express 2005


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut Connexion avec SQL Server Express 2005
    Bonjour,

    J'ai terminé mon application de gestion de magasin en utilisant Eclipse et MySQL et tout fonctionne.

    Le problème à présent est qu'il faut que j'utilise SQL Server, à la place de MySQL.

    Après migration de ma BDD et après changement du driver pour SQL Server, comme résultat j'ai : connexion impossible

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private static Connection connect;
     
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");    
    private String url = "jdbc:sqlserver://localhost;database=anabib_bdd";
     
            private String user = "sa";
     
            private String passwd = "manager";
    connect = DriverManager.getConnection(url, user, passwd);
    Je n'ai mis que la partie intéressante...

    Quelqu'un saurait-il m'expliquer ce qui ne va pas ?

    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut
    Bonjour,

    Une autre partie très intéressante serait l'éventuelle stacktrace indiquant que la connexion est impossible. Une information importante pourrait bien se cacher dedans et justement expliquer pourquoi la connexion est impossible.

    Benoit

  3. #3
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    Quand je lance en monde debug, voici ce que je reçois :
    the source attachement does not contains the source for the sqlexception.class
    you can change the source attachement by clicking change attached source bellow.
    Si j'ai bien compris, il parle du connecteur "sqljdbc.jar" et le hic c'est qu'il existe dans mon application.

    Et voici ce que je reçois aussi :
    / (version 1.4 : 48.0, super bit)
    public final class com.microsoft.sqlserver.jdbc.SQLServerException extends java.sql.SQLException implements java.io.Serializable {

    // Field descriptor #63 Ljava/lang/String;
    static final java.lang.String EXCEPTION_XOPEN_CONNECTION_CANT_ESTABLISH = "08001";

    // Field descriptor #63 Ljava/lang/String;
    static final java.lang.String EXCEPTION_XOPEN_CONNECTION_FAILURE = "08006";

    // Field descriptor #67 I
    static final int LOGON_FAILED = 18456;

    // Field descriptor #67 I
    static final int PASSWORD_EXPIRED = 18488;

    // Field descriptor #72 Lcom/microsoft/sqlserver/jdbc/StreamError;
    private final com.microsoft.sqlserver.jdbc.StreamError streamError;

    // Field descriptor #74 Ljava/util/logging/Logger;
    static java.util.logging.Logger exLogger;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_NONE = 0;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_COMMAND_INTERRUPTED = 1;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_FROM_DATABASE = 2;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_IO_FAILED = 3;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_INVALID_TDS = 4;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_SSL_FAILED = 5;

    // Field descriptor #67 I
    static final int DRIVER_ERROR_UNSUPPORTED_CONFIG = 6;

    // Field descriptor #67 I
    private int driverErrorCode;

  4. #4
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut précision sur l'arrêt en mode debug
    Tu lances ton application en mode "debug". Pour une raison inconnue de ma part, java s'arrête sur l'une des instructions d'une classe présente dans le jar.

    Le 1er message t'indique que Eclipse ne trouve pas le fichier source .java de la classe sqlexception.class.

    Et ce que tu reçois ensuite est le fichier sqlexception.class décompilé... Il ne s'agit pas là de message d'erreur.

    Essais en lançant en mode normal, tu devrais ensuite avoir une stacktrace à montrer.

    Tu trouveras peut être par là la raison de l'arrêt en mode debug : http://stackoverflow.com/questions/7...er-breakpoints

    Benoit

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    voici le stacktrace en mode normal
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    	at com.anabib.Connexion$BoutonConnexion.actionPerformed(Connexion.java:182)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Window.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    	at java.awt.EventQueue.access$000(Unknown Source)
    	at java.awt.EventQueue$1.run(Unknown Source)
    	at java.awt.EventQueue$1.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue$2.run(Unknown Source)
    	at java.awt.EventQueue$2.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)

  6. #6
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut Ajout des guillemets
    Bonsoir,

    La stacktrace explique qu'à la ligne 182 du fichier Connexion.java il y a une action du style "null.maMethode()" de tentée... d'où le NullPointerException.

    Je te conseille de regarder quelle est l'instruction à cette ligne et d'essayer de comprendre pourquoi l'objet en question est null.

    Benoit

  7. #7
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 47
    Points : 44
    Points
    44
    Par défaut
    Tout d'abord je te remercie Benoit pour ta contribution car je bloque vraiment et ça me retarde dans mon travail et je sais que c'est quelque chose de stupide
    Revenons a nos mouton.
    Connexion est une classe et la ligne 182 la voila
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    180    Connection conn = FirstConnection.getInstance();
     
    182   Statement state = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
    Donc la ligne 182 vient après la ligne 180 qui fait appel à la classe de connexion que voici:
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    public static class FirstConnection
    	{
     
    		private String url = "jdbc:sqlserver://localhost;database=anabib_bdd";
    		//private String url = "jdbc:mysql://localhost:3306/anabib_bdd";               
    		private String user = "sa";
    		//private String user = "root";
    		private String passwd = "manager";
    		//private String passwd = "reda1301";
     
    		private static Connection connect;
     
     
    		private FirstConnection()
    		{
    			try 
    			{
    				connect = DriverManager.getConnection(url, user, passwd);
     
    			} 
    			catch (SQLException e) 
    			{
    				Connexion.label.setText("Connexion impossible a la BDD");
    			}
    		}
     
    	/**
             * Méthode qui va nous retourner notre instance
             * et la créer si elle n'existe pas...
             * @return
             */
     
    		public static Connection getInstance()
    		{
    			if(connect == null)
    			{
    				new FirstConnection();
    			}
    			return connect;	
    		}	
     
    	}
    Ce qui m'intrigue c'est, qu'avec la même syntaxe, tout marche avec Mysql (bien-sur il faut changer le nom driver ainsi user et password).

    Merci d'avance pour vos conseils.

  8. #8
    Membre éclairé

    Profil pro
    Technicien
    Inscrit en
    Février 2009
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Février 2009
    Messages : 338
    Points : 791
    Points
    791
    Par défaut
    Bonjour,

    Il y a un souci avec le "try catch" dans la classe FirstConnection. En cas d'erreur, celle-ci est bien catchée mais pas affichée et le traitement continu. Ce qui fait que la ligne "FirstConnection.getInstance();" renvoie null.

    Essai un e.printStackTrace() temporairement dans le block "try catch" afin de voir l'erreur SQL. Ensuite, tu pourras corriger cette erreur Il te faudra aussi envisager quelques modifications pour la gestion des erreurs.

    Benoit

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'installation avec SQL Server Express 2005
    Par Davesique dans le forum MS SQL Server
    Réponses: 0
    Dernier message: 10/12/2012, 11h35
  2. Pb avec SQL Server Express 2005
    Par Fjord dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/05/2011, 11h25
  3. Connexion ODBC à SQL SERVER Express 2005
    Par banto_maxime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/04/2008, 15h58
  4. Réponses: 4
    Dernier message: 06/03/2008, 13h08
  5. [Delphi7] Connexion avec SQL Server 2005
    Par ghiles82 dans le forum Bases de données
    Réponses: 4
    Dernier message: 28/11/2007, 16h19

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