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 :

CODE SQL mal écrite


Sujet :

JDBC Java

  1. #1
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut CODE SQL mal écrite
    Bonjour, j'aimerais récupérer l'email et le mot de passe merci de votre aide.
    Code Java : 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
     connexion = (Connection) DriverManager.getConnection( url, utilisateur, MotDePasse );
     
    			        /* Création de l'objet gérant les requêtes */
    			        statement = (Statement) connexion.createStatement();
     
    			        /* Exécution d'une requête de lecture */
    			        resultat = statement.executeQuery( "SELECT email, motpasse FROM membre where email='"+mail+"' and motpasse='"+motPasse+"';");
     
     
    			        /* Récupération des données du résultat de la requête de lecture */
    			       if ( resultat!=null) {
    			            String emailUtilisateur = resultat.getString( "email" );
    			            String motDePasseUtilisateur = resultat.getString( "motpasse" );
    			            res="success";
    			            response.setContentType("text/html");
    			    		response.getWriter().write(res);
    			        }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Bonjour,

    1) Il est recommandé d'utiliser les preparedstatement plus que de faire comme tu as fait.
    2) if (rs.next()) plutot que if rs != null me semble plus judicieux.
    3) Sinon Quel est le problème en fait ?
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Bonjour,

    4) Normalement on ne termine pas la requête à exécuter dans ce contexte par ';'. Le statement n'aime pas ça.

    cf : https://docs.oracle.com/javase/tutor...tatements.html

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String query = "select COF_NAME, SUP_ID, PRICE, " +
                       "SALES, TOTAL " +
                       "from " + dbName + ".COFFEES";

  4. #4
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    J'ai modifié mon code.
    Code Java : 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
    String driver = "com.mysql.jdbc.Driver"; 
    			String url = "jdbc:mysql://localhost:3306/germinal"; 
    			String login = "" ;
    			String password = "password"; 
    			Connection connection = null; 
    			try{ 
    			   Class.forName(driver); 
    			   connection = (Connection) DriverManager.getConnection(url,login,password); 
    			   System.out.println("reusite");
    			} 
    			catch(ClassNotFoundException cnfe){ 
    			   System.out.println("Driver introuvable : "); 
    			   cnfe.printStackTrace(); 
    			} 
    			catch(SQLException sqle){ 
    			   System.out.println("Erreur SQL : "); 
    			   //Cf. Comment gérer les erreurs ? 
    			} 
    			catch(Exception e){ 
    			   System.out.println("Autre erreur : "); 
    			   e.printStackTrace(); 
    			} 
    			finally 
    			{ 
    			   if(connection!=null){try{connection.close();}catch(Exception e){e.printStackTrace();}} 
    			   //etc. 
    			}
    		}

    j'obtient Erreur SQL.

    pouvez vous m'aider à bien me connecter à ma base. Merci

  5. #5
    Membre expérimenté Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Points : 1 679
    Points
    1 679
    Par défaut
    Et quelle est l'exception levée ?

    Ceci devrait donner plus d'infos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.out.println("SQLException: "+ ex.getMessage());
    System.out.println("SQLState: "+ ex.getSQLState());
    System.out.println("VendorError: "+ ex.getErrorCode());
    
    cf https://dev.mysql.com/doc/connector-...ermanager.html

    Bon courage,

  6. #6
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Merci de votre aide.
    J'ai codé ainsi: et ça fonctionne
    Code Java : 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    try {
    				Class.forName("com.mysql.cj.jdbc.Driver");
    //				Class.forName("com.mysql.jdbc.Driver");
     
    			} catch (ClassNotFoundException e1) {
    				// TODO Auto-generated catch block
    				System.out.println("mysql cj");
    				e1.printStackTrace();
    			}
     
    Connection connection = null;
     
    		    try {
    		        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/germinal?serverTimezone=UTC","root","motdepasse");
     
    		        String sql = "SELECT idmembre FROM membre WHERE email= ? and motpasse= ?";
     
    //		        Statement statement =  connection.createStatement();
     
    		        PreparedStatement preparedStatement = connection.prepareStatement("SELECT idmembre FROM membre WHERE email= ? and motpasse= ?"); 
     
    		        preparedStatement.setString(1,mail);
    		        preparedStatement.setString(2,motPasse); 
     
     
    		        /* Exécution d'une requête de lecture */
    		        ResultSet   resultat = preparedStatement.executeQuery();
     
     
    		        /* Récupération des données du résultat de la requête de lecture */
    		       if ( resultat.next()) {
    //		            String emailUtilisateur = resultat.getString( "email" );
    //		            String motDePasseUtilisateur = resultat.getString( "motpasse" );
    		            res="success";
    		            response.setContentType("text/html");
    		    		response.getWriter().write(res);
    		        } else
    		        {res="echec";
    	            response.setContentType("text/html");
    	    		response.getWriter().write(res);}
    		        } 
    		        catch (SQLException e) {
    		        System.out.println("Connection Failed! Check output console");
    		        e.printStackTrace();
    		        return;
    		    }
     
    		    if (connection != null) {
    		        System.out.println("You made it, take control your database now!");
    		    } else {
    		        System.out.println("Failed to make connection!");
    		    }
     
    		}

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

Discussions similaires

  1. [Mon premier code SQL] Multiples INNER JOIN's
    Par Paulinho dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/11/2005, 09h04
  2. Création BD Access Code SQL pour relation 1-1 ?
    Par colorid dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/10/2005, 16h42
  3. Réponses: 7
    Dernier message: 12/09/2005, 11h05
  4. [IB6] Code SQL.
    Par qi130 dans le forum SQL
    Réponses: 1
    Dernier message: 21/02/2005, 12h21
  5. Récupérer le code SQL à partir d'une requête
    Par Edith_T dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/11/2004, 14h10

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