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

Servlets/JSP Java Discussion :

Problème de connexion à la base MySql


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 205
    Points : 102
    Points
    102
    Par défaut Problème de connexion à la base MySql
    Bonjour,
    Je voudrais afficher des données d'une base Mysql mais je rencontre un problème d'accès à MySQL sous easyPHP.
    mon objet connection me renvoie la valeur nulle pourtant mon serveur a bien démarré.

    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
    import java.sql.*;
     
    public class ConnexionDB {
    	private static Connection connection;
     
    	static {
    		try {
    			Class.forName("com.mysql.jdbc.Driver");
     
    			String url = "jdbc:mysql://localhost:3306/gestionproduit";
    			String user = "root";
    			String pass = "";
     
    			connection = DriverManager.getConnection(url, user, pass);
    		}
    		catch(SQLException | ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public static Connection getConnection() {
    		System.out.println(connection);
    		return connection;
    	}
     
    }
    Nom : Capture d’écran 2023-09-21 à 14.34.43.png
Affichages : 300
Taille : 137,7 Ko

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 477
    Points : 941
    Points
    941
    Billets dans le blog
    5
    Par défaut
    Une généralité: La Connexion doit être fermée.

    La Connexion JDBC ( https://docs.oracle.com/javase/8/doc...onnection.html ) est Autoclosable ( https://docs.oracle.com/javase/8/doc...Closeable.html ).

    On doit donc la fermer, avec un code utilisant un try-with-ressource:
    https://bitbucket.org/philippegibaul...chiersSQL.java

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    private void executeSQLFiles() throws ClassNotFoundException, SQLException, IOException {
    		Class.forName(configuration.getClassDriver());
    		try (Connection connection = DriverManager.getConnection(configuration.getJDBCUrl(), configuration.getUser(),
    				configuration.getPassword())) {
    			for (Entry<Integer, File> entry : mapExecution.entrySet()) {
    				LOGGER.info("Execution ficnier n°" + entry.getKey() + " " + entry.getValue().getAbsolutePath());
    				executeSQLFile(connection, entry.getValue());
    				LOGGER.info("Le ficnier n°" + entry.getKey() + " " + entry.getValue().getAbsolutePath()+" a été executé entièrement");
    			}
    		}
    	}
    Pour le problème de fond, il faudrait plus de log (le début de la log pour être exact).

    J'éviterais néanmoins la Connexion dans un attribut statique.

    Mieux vaut avoir une interface qui permet d'encapsuler les données de la BDD (qui permet entre autre de changer de BDD), et ouvrir à chaque que l'on en a besoin, une connexion avec le try-with-ressources.

    On maitrise mieux ce que l'on fait, et à la fin, on ferme la connexion, ce qui est largement plus propre.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 205
    Points : 102
    Points
    102
    Par défaut
    Voici tout le log

    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Nom version serveur :              Apache Tomcat/10.1.11
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Serveur compilé :                  Jul 6 2023 13:45:39 UTC
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Version du serveur :               10.1.11.0
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Nom de l'OS :                      Windows 10
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Version OS :                       10.0
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Architecture :                     amd64
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Java Home :                        C:\Program Files\Java\jdk-19
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Version JVM :                      19.0.1+10-21
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Fournisseur de la JVM :            Oracle Corporation
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_BASE :                    C:\Users\akone.BRVMDCBR\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_HOME :                    C:\Program Files\apache-tomcat-10.1.11
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : -Dcatalina.base=C:\Users\akone.BRVMDCBR\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : -Dcatalina.home=C:\Program Files\apache-tomcat-10.1.11
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : -Dwtp.deploy=C:\Users\akone.BRVMDCBR\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : --add-opens=java.base/java.lang=ALL-UNNAMED
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : --add-opens=java.base/java.io=ALL-UNNAMED
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : --add-opens=java.base/java.util=ALL-UNNAMED
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : -Dfile.encoding=windows-1252
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Argument de la ligne de commande : -XX:+ShowCodeDetailsInExceptionMessages
    sept. 21, 2023 3:36:36 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    INFO: La librairie Apache Tomcat Native basée sur APR qui permet des performances optimales dans les environnements de production n'a pas été trouvée sur le java.library.path : [C:\Program Files\Java\jdk-19\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Program Files\Parallels\Parallels Tools\Applications;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\binaries\php\php_runningversion;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\Windows Live\Shared;C:\TPWS\tomcat\bin;C:\Program Files\Java\jdk-18.0.1.1\bin;C:\Program Files\dotnet\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\dbserver\mysql5717x86x230726092925\bin;C:\Program Files\Java\jdk-18.0.1.1\bin;.]
    sept. 21, 2023 3:36:36 PM org.apache.coyote.AbstractProtocol init
    INFO: Initialisation du gestionnaire de protocole ["http-nio-8080"]
    sept. 21, 2023 3:36:36 PM org.apache.catalina.startup.Catalina load
    INFO: L'initialisation du serveur a pris [881] millisecondes
    sept. 21, 2023 3:36:36 PM org.apache.catalina.core.StandardService startInternal
    INFO: Démarrage du service [Catalina]
    sept. 21, 2023 3:36:36 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Démarrage du moteur de Servlets : [Apache Tomcat/10.1.11]
    sept. 21, 2023 3:36:37 PM org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
    WARNING: La création de l'instance de SecureRandom pour le générateur d'id de session en utilisant [SHA1PRNG] a pris [132] millisecondes
    sept. 21, 2023 3:36:38 PM org.apache.jasper.servlet.TldScanner scanJars
    INFO: Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès ; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
    sept. 21, 2023 3:36:38 PM org.apache.coyote.AbstractProtocol start
    INFO: Démarrage du gestionnaire de protocole ["http-nio-8080"]
    sept. 21, 2023 3:36:38 PM org.apache.catalina.startup.Catalina start
    INFO: Le démarrage du serveur a pris [1384] millisecondes
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'performance_schema.session_variables' doesn't exist
    	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
    	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    	at com.mysql.jdbc.Util.getInstance(Util.java:384)
    	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3562)
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3494)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1960)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2114)
    	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2690)
    	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
    	at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1465)
    	at com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:3961)
    	at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3504)
    	at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2202)
    	at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787)
    	at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
    	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
    	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
    	at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
    	at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357)
    	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
    	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:683)
    	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:230)
    	at com.model.ConnexionDB.<clinit>(ConnexionDB.java:16)
    	at org.apache.jsp.show_jsp._jspService(show_jsp.java:128)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
    	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.base/java.lang.Thread.run(Thread.java:1589)
    null
    sept. 21, 2023 3:36:39 PM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() du Servlet [jsp] dans le contexte au chemin [/GestionProduit] a retourné une exception [Une exception s'est produite lors du traitement de [show.jsp] à la ligne [7]
     
    4: <%
    5:        Connection con = ConnexionDB.getConnection();
    6:        try{
    7:          PreparedStatement stmt = con.prepareStatement("SELECT * FROM produit");
    8:          ResultSet res = stmt.executeQuery();
    9:          
    10:         while (res.next()) {
     
     
    Stacktrace:] avec la cause
    java.lang.NullPointerException: Cannot invoke "java.sql.Connection.prepareStatement(String)" because "con" is null
            at org.apache.jsp.show_jsp._jspService(show_jsp.java:130)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:380)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:328)
            at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
            at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:676)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341)
            at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)
            at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
            at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1740)
            at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
            at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
            at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.base/java.lang.Thread.run(Thread.java:1589)

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 477
    Points : 941
    Points
    941
    Billets dans le blog
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'performance_schema.session_variables' doesn't exist

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 477
    Points : 941
    Points
    941
    Billets dans le blog
    5
    Par défaut
    C'est la première que j'ai indiqué.

    Par ailleurs, c'est une très mauvaise pratique d'utiliser du code JDBC dans une page JSP.

    La page JSP n'est d'ailleurs plus utilisée depuis 10-15ans.

    Le traitement est côté serveur, dans une Servlet/Controlleur...

    L'appel à la BDD est un traitement, de fait, il est côté serveur!

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PhilippeGibault Voir le message
    C'est la première que j'ai indiqué.

    Par ailleurs, c'est une très mauvaise pratique d'utiliser du code JDBC dans une page JSP.

    La page JSP n'est d'ailleurs plus utilisée depuis 10-15ans.

    Le traitement est côté serveur, dans une Servlet/Controlleur...

    L'appel à la BDD est un traitement, de fait, il est côté serveur!
    La page JSP est une servlet, donc exécutée côté serveur, ce n'est pas le problème.

    Pour ce qui est du problème initial, il semble que ce soit lié à une mise à jour de la base de données MySQL qui se serait mal passée ou une corruption de la base.
    Ils suggèrent de faire ces commandes :


    1. mysql_upgrade -u root
    2. systemctl restart mysql


    A voir...

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2013
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2013
    Messages : 205
    Points : 102
    Points
    102
    Par défaut
    Merci à tous,
    la mise à jour a permis de résoudre le problème.

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 477
    Points : 941
    Points
    941
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    La page JSP est une servlet, donc exécutée côté serveur, ce n'est pas le problème.

    Pour ce qui est du problème initial, il semble que ce soit lié à une mise à jour de la base de données MySQL qui se serait mal passée ou une corruption de la base.
    Ils suggèrent de faire ces commandes :


    1. mysql_upgrade -u root
    2. systemctl restart mysql


    A voir...
    Je persiste et signe, utiliser du code JDBC dans une servlet est une mauvaise pratique. Certes, on peut le faire, mais ça ne veut pas dire qu'il faut le faire.

    Pour être plus précis, mettre du code JDBC dans une JSP va contre les bonnes pratiques et en particulier contre la séparation des rôles et MVC (Modèle Vue Controlleur).

    La servlet, c'est le contrôleur là où la JSP est la vue.

    Le traitement se fait dans la servlet.

    Le rôle de la vue est de gérer les questions d'affichage.

    De fait, l'appelle à la BDD, qui est un traitement, va donc dans la servlet.

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PhilippeGibault Voir le message
    Je persiste et signe, utiliser du code JDBC dans une servlet est une mauvaise pratique. Certes, on peut le faire, mais ça ne veut pas dire qu'il faut le faire.

    Pour être plus précis, mettre du code JDBC dans une JSP va contre les bonnes pratiques et en particulier contre la séparation des rôles et MVC (Modèle Vue Controlleur).

    La servlet, c'est le contrôleur là où la JSP est la vue.

    Le traitement se fait dans la servlet.

    Le rôle de la vue est de gérer les questions d'affichage.

    De fait, l'appelle à la BDD, qui est un traitement, va donc dans la servlet.
    Il faut arrêter d'être un Ayatollah de la programmation avec des certitudes sur les bonnes et les mauvaises pratiques.
    Quand on utilise une page JSP avec des requêtes base de données internes c'est qu'on est dans le style de site dynamique qu'on pourrait faire avec PHP.
    Inutile de se prendre la tête avec un pattern MVC (ou mieux encore MVC2), on extrait du contenu d'une base pour le présenter à des clients http dans la page directement.

    Je ne dis pas que c'est esthétique ou que je recommanderais de faire une application de gestion comme ça mais pour du contenu dynamique, ça suffit largement.

  10. #10
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 477
    Points : 941
    Points
    941
    Billets dans le blog
    5
    Par défaut
    Du mauvais code coûte cher.

    Ça coute cher économiquement:
    https://www.premaccess.com/qu-est-ce...-la-maitriser/

    • Les entreprises perdraient actuellement 6 000 € par seconde pour maintenir des lignes de code désuètes.
    • En moyenne, les sociétés dépensent 28% de leur budget informatique à lutter contre la dette technique. Alors qu’à peine 33% de ce budget est alloué à l’innovation.
    • Plus une entreprise grandit, plus ce problème s’intensifie : les Petites et Moyennes Entreprises dépensent 27% de leur budget informatique dans la dette technique. Les grandes entreprises dépensent 41% de leur budget informatique dans la dette technique.
    • 51% des grandes entreprises déclarent que la dette technique nuit à la conquête de nouveaux marchés.
    • 64% déclarent qu’elle aura un impact majeur sur leurs activités futures.
    • 69% déclarent qu’elle limite leur capacité à innover.
    • 32% disent que l’un de leurs plus gros soucis est l’apparition d’erreurs détectées uniquement après la commercialisation.


    Mais ça coûte cher socialement aussi:
    https://blog.ippon.fr/2018/03/15/la-...s-grenouilles/

    En tant que développeur, on a un rôle majeur, la dette technique, ne pas en faire, c'est notre travail.

    Et le mieux, pour en faire le moins possible, c'est d'appliquer les bonnes pratiques:
    https://www.maxpou.fr/qualite-logici...petits-cochons

    C'est pour ça qu'il faut insister.

    De plus, si un projet est techniquement très endetté, il se peut que l'entreprise qui gère ce projet ait un mal fou à recruter (cf grenouille voyant que l'eau est bouillante).
    Ce qui au fond, pour moi, est juste normal.

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

Discussions similaires

  1. Problème de connexion à une base MySQL
    Par ctenot dans le forum NetBeans Platform
    Réponses: 8
    Dernier message: 23/11/2011, 04h59
  2. Problème de connexion à la base MySql avec Hibernate
    Par aloublack dans le forum Hibernate
    Réponses: 0
    Dernier message: 14/10/2010, 19h58
  3. Problème de connexion avec base MySql
    Par sophiec dans le forum QlikView
    Réponses: 1
    Dernier message: 09/07/2009, 19h27
  4. Problème de connexion à la base MYSQL via l'exécutable .JAR
    Par sam45 dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 12/09/2008, 15h48
  5. [MySQL] Problème de connexion à la base MySQL
    Par Hisander dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 10/05/2007, 10h03

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