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 :

Accès à la base de donnée via Driver Mysql


Sujet :

JDBC Java

  1. #1
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut Accès à la base de donnée via Driver Mysql
    Bonjour,

    J’ai fait une application web java sous Eclipse et quand j’ai essayé de se connecter à la base de données j’ai le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
    Sachant qu
    e j’ai bien ajouté le driver de connexion de mysql : mysql-connector-java-8.0.12.jar

    Et voici la structure de mon projet web

    Nom : projet.JPG
Affichages : 3574
Taille : 70,8 Ko
    Nom : p1.JPG
Affichages : 3877
Taille : 83,1 Ko



    SVP avez-vous une idée pour accéder à la base de donnée?

    Merci d'avance.
    Images attachées Images attachées  

  2. #2
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 565
    Points
    4 565
    Par défaut
    Le nom du driver à charger est désormais "com.mysql.cj.jdbc.Driver" mais c'est juste un warning, pas un message d'erreur

  3. #3
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    Merci pour votre réponse, mais je n'ai pu afficher les données de la BDD:

    et voici mon code source:

    GestionTestJDBC.java
    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
    44
    45
    46
    47
    48
    49
    50
     
    package com.test.servlet;
    import java.io.IOException;
    import java.util.List;
     
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import com.test.bdd.ConnectionBDD;
    import com.test.beans.Utilisateur;
    @WebServlet("/GestionTestJDBC")
    public class GestionTestJDBC extends HttpServlet {
        /**
             * 
             */
        /**
         * @see HttpServlet#HttpServlet()
         */
    	private static final long serialVersionUID = 1L;
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public GestionTestJDBC() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    	/**
             * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
             */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		ConnectionBDD tableUt = new ConnectionBDD();
    		request.setAttribute("uts", tableUt.recupererUtilisateurs());
    		this.getServletContext().getRequestDispatcher( "/WEB-INF/jdbcT.jsp" ).forward( request, response );
    	}
     
    	/**
             * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
             */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
     
    }
    ConnectionBDD.java
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    package com.test.bdd;
     
    import java.util.ArrayList;
    import java.util.List;
     
    import javax.servlet.http.HttpServletRequest;
     
    import com.sun.org.apache.bcel.internal.generic.RETURN;
    import com.test.beans.Utilisateur;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
     
    public class ConnectionBDD {
    public List<Utilisateur> recupererUtilisateurs(){
    	List<Utilisateur> uts= new ArrayList<Utilisateur>();
    	/* Chargement du driver JDBC pour MySQL */
    	try {
    	    Class.forName( "com.mysql.jdbc.Driver" );
    	} catch ( ClassNotFoundException e ) {
    	    /* Gérer les éventuelles erreurs ici. */
    	}
     
    	/* Connexion à la base de données */
    	String url = "jdbc:mysql://localhost:3306/java";
    	String utilisateur = "root";
    	String motDePasse = "12345";
     
    	Connection connexion = null;
    	Statement statement = null;
    	ResultSet resultat = null;
     
    	try {
    	    connexion = DriverManager.getConnection( url, utilisateur, motDePasse );
     
    	    /* Ici, nous placerons nos requêtes vers la BDD */
    	    /* ... */	/* Exécution d'une requête de lecture */
    		resultat = statement.executeQuery( "SELECT id, login, mdp, nom  FROM utilisateur;" );
     
    		/* Récupération des données du résultat de la requête de lecture */
    		while ( resultat.next() ) {
    		    int idUtilisateur = resultat.getInt( "id" );
    		    String loginUtilisateur = resultat.getString( "login" );
    		    String motDePasseUtilisateur = resultat.getString( "mdp" );
    		    String nomUtilisateur = resultat.getString( "nom" );
     
    		    /* Traiter ici les valeurs récupérées. */
    		    Utilisateur ut = new Utilisateur();
    		    ut.setId(idUtilisateur);
    		    ut.setLogin(loginUtilisateur);
    		    ut.setMdp(motDePasseUtilisateur);
    		    ut.setNom(nomUtilisateur);
    		    uts.add(ut);
    		}
     
     
    	} catch ( SQLException e ) {
    	    /* Gérer les éventuelles erreurs ici */
    	} finally {
    	        try {
    	            /* Fermeture de la connexion */
    	        	if(resultat != null)
    	        		resultat.close();
    	        	if(statement != null)
    	        		statement.close();
    	        	if(connexion != null)
    		        	connexion.close();
    	        } catch ( SQLException ignore ) {
    	            /* Si une erreur survient lors de la fermeture, il suffit de l'ignorer. */
    	        }
    	}
    	return uts;
     
    }
     
     
    }
    jdbc.jsp
    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
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>Test JDBC</title>
    </head>
    <body>
    <p>
    Hello All
    </p>
    <ul>
    <c:out value ="${uts}"/>
    <c:forEach var="utilisateur" items="${uts}">
    <li> 
    <c:out value ="${utilisateur.id}"/>
    <c:out value ="${utilisateur.login}"/>
    <c:out value ="${utilisateur.mdp}"/>
    <c:out value ="${utilisateur.nom}"/>
    </li>
    </c:forEach>
    </ul>
    </body>
    </html>
    Le résultat affiché:

    Hello All
    []

    Est ce que mon code est valide, est ce que je dois ajouter des autres traitements?

    Merci.

  4. #4
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 565
    Points
    4 565
    Par défaut
    catch ( SQLException e ) {
    /* Gérer les éventuelles erreurs ici */

    Ce n'est pas là pour la décoration

  5. #5
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 687
    Points : 2 014
    Points
    2 014
    Par défaut
    On ne peut plus utiliser com.mysql.jdbc.driver avec la version 8.0.12 de Connector/J, car le code source est ceci :

    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
     
    package com.mysql.jdbc;
     
    import java.io.PrintStream;
    import java.sql.SQLException;
     
    public class Driver extends com.mysql.cj.jdbc.Driver
    {
      public Driver()
        throws SQLException
      {
      }
     
      static
      {
        System.err.println("Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.");
      }
    }
    Et il ne faut jamais faire de catch vide, au minimum mettre un log warning, quitte à le désactiver dans la configuration.

  6. #6
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    J'ai modifié mon catch par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	} catch ( SQLException e ) {
    	    System.out.println(e.getErrorCode());
    	    System.out.println(e.getMessage());
    	} finally {
    	        try {
    	            /* Fermeture de la connexion */
    	        	if(resultat != null)
    Et voici le résultat que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    0
    The server time zone value 'Afr. centrale Ouest' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
    Si je ne dois pas utiliser "com.mysql.jdbc.driver avec la version 8.0.12 de Connector/J", alors par quel version je le remplacerai?

  7. #7
    Expert confirmé Avatar de yildiz-online
    Homme Profil pro
    Architecte de domaine
    Inscrit en
    Octobre 2011
    Messages
    1 444
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de domaine

    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 444
    Points : 4 565
    Points
    4 565
    Par défaut
    Il faut ajouter à l'url de connexion

    ?serverTimezone=" + Calendar.getInstance().getTimeZone().getID()

    Si ça ne fonctionne pas, en utiliser une venant d'ici:

    https://en.wikipedia.org/wiki/List_o...ase_time_zones

  8. #8
    Débutant  
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 346
    Points : 86
    Points
    86
    Par défaut
    Merci bcp pour vos aides, j'ai changé le connecteur utilisé par "myql-connector-5.1.18.jar" et mon application fonctionne bien.

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

Discussions similaires

  1. accés au base de donnée via console
    Par abboudi dans le forum C
    Réponses: 2
    Dernier message: 29/05/2009, 13h30
  2. Accès à Une Base de données via le Net
    Par Ramdoulou dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 29/07/2008, 20h33
  3. Réponses: 3
    Dernier message: 08/06/2008, 21h08
  4. Accès aux bases de données via les objets de Borland (Bdpxx)
    Par agodinasandrien dans le forum Delphi .NET
    Réponses: 9
    Dernier message: 26/09/2005, 14h00
  5. Acces à une base de données via ODBC
    Par jyg dans le forum MFC
    Réponses: 4
    Dernier message: 23/03/2005, 14h56

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