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 :

No suitable driver


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    en formation
    Inscrit en
    juin 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : juin 2019
    Messages : 5
    Points : 8
    Points
    8
    Par défaut No suitable driver
    Bonjour,

    J'essaye actuellement de développer une petite application avec JavaFx. Etant débutant, j'ai encore du mal à comprendre mes erreurs. J'espère que vous pourrez m'apporter votre aide. Voici mon code:

    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
    package com.jeremy;
     
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;
     
    import java.io.IOException;
     
    public class Main extends Application {
     
        public static void main(String[] args) {
            launch(args);
        }
     
        @Override
        public void start(Stage primaryStage) throws IOException {
            Parent root = FXMLLoader.load(getClass().getResource("GUI/Office.fxml"));
            Scene scene = new Scene(root);
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    }
    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
    package com.jeremy.GUI;
     
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.fxml.Initializable;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableView;
     
    import java.net.URL;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ResourceBundle;
     
    import com.jeremy.Model.Client;
    import com.jeremy.DAO.Database;
     
    import javafx.scene.control.cell.PropertyValueFactory;
     
    public class OfficeController implements Initializable {
     
     
        public TableView<Client> table;
        public TableColumn<Client, String> formation;
        public TableColumn<Client, String> lastName;
        public TableColumn<Client, String> firstName;
        public TableColumn<Client, String> email;
        public TableColumn<Client, String> phone;
     
        ObservableList<Client> obList = FXCollections.observableArrayList();
     
        @Override
        public void initialize(URL location, ResourceBundle resources) {
     
            Connection con = new Database().getConnection();
            try {
                ResultSet rs = con.createStatement().executeQuery("select * from registrations");
     
                while (rs.next()) {
                    obList.add(new Client(rs.getString("formation"),
                                rs.getString("lastname"),
                                rs.getString("firstname"),
                                rs.getString("email"),
                                rs.getString("phone")
                                )
                    );
     
                }
     
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
     
            formation.setCellValueFactory(new PropertyValueFactory<>("formation"));
            lastName.setCellValueFactory(new PropertyValueFactory<>("lastName"));
            firstName.setCellValueFactory(new PropertyValueFactory<>("firstName"));
            email.setCellValueFactory(new PropertyValueFactory<>("email"));
            phone.setCellValueFactory(new PropertyValueFactory<>("phone"));
     
            table.setItems(obList);
        }
    }
    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <?import java.net.URL?>
    <?import javafx.scene.control.TableColumn?>
    <?import javafx.scene.control.TableView?>
    <?import javafx.scene.image.Image?>
    <?import javafx.scene.image.ImageView?>
    <?import javafx.scene.layout.AnchorPane?>
    <?import javafx.scene.layout.ColumnConstraints?>
    <?import javafx.scene.layout.GridPane?>
    <?import javafx.scene.layout.RowConstraints?>
    <?import javafx.scene.text.Font?>
    <?import javafx.scene.text.Text?>
     
    <AnchorPane prefHeight="681.0" prefWidth="1017.0" styleClass="bodybg" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.jeremy.GUI.OfficeController">
        <stylesheets>
            <URL value="@style.css" />
        </stylesheets>
       <children>
          <GridPane layoutX="140.0" layoutY="-26.0" prefHeight="629.0" prefWidth="764.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
            <columnConstraints>
              <ColumnConstraints hgrow="SOMETIMES" maxWidth="380.0" minWidth="10.0" prefWidth="239.0" />
              <ColumnConstraints halignment="CENTER" hgrow="SOMETIMES" maxWidth="778.0" minWidth="10.0" prefWidth="778.0" />
            </columnConstraints>
            <rowConstraints>
              <RowConstraints maxHeight="293.0" minHeight="10.0" prefHeight="74.0" vgrow="SOMETIMES" />
              <RowConstraints maxHeight="607.0" minHeight="10.0" prefHeight="607.0" vgrow="SOMETIMES" />
            </rowConstraints>
             <children>
                <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Panneau d'administration" wrappingWidth="438.8642578125" GridPane.columnIndex="1" GridPane.valignment="TOP">
                   <font>
                      <Font size="39.0" />
                   </font>
                </Text>
                <ImageView fitHeight="41.0" fitWidth="216.0" pickOnBounds="true" preserveRatio="true" GridPane.valignment="TOP">
                   <image>
                      <Image url="@../Assets/logo.png" />
                   </image>
                </ImageView>
                <TableView fx:id="table" maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="552.0" prefWidth="746.0" GridPane.columnIndex="1" GridPane.halignment="CENTER" GridPane.rowIndex="1" GridPane.valignment="CENTER">
                  <columns>
                    <TableColumn fx:id="formation" prefWidth="200.0" text="Formation" />
                    <TableColumn fx:id="lastName" prefWidth="100.0" text="Nom" />
                      <TableColumn fx:id="firstName" prefWidth="100.0" text="Prénom" />
                      <TableColumn fx:id="email" prefWidth="250.0" text="Email" />
                      <TableColumn fx:id="phone" prefWidth="95.0" text="Téléphone" />
                  </columns>
                </TableView>
             </children>
          </GridPane>
       </children>
    </AnchorPane>

    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
    package com.jeremy.DAO;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
     
    public class Database {
        public Connection getConnection()
        {
            try {
     
                String url = "jdbc:mysql://localhost:3308/lapasserelle?serverTimezone=UTC";
                Connection connection = DriverManager.getConnection(url,"root","");
     
                return connection;
     
            } catch (Exception e) {
                System.out.println("Error");
                System.out.println(e.getMessage());
            }
            return null;
        }
    }
    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
    package com.jeremy.Model;
     
    public class Client {
     
        String formation, lastName, firstName, email, phone;
     
        public Client(String formation, String lastName, String firstName, String email, String phone) {
            this.formation = formation;
            this.lastName = lastName;
            this.firstName = firstName;
            this.email = email;
            this.phone = phone;
        }
     
        public String getFormation() {
            return formation;
        }
     
        public void setFormation(String formation) {
            this.formation = formation;
        }
     
        public String getLastName() {
            return lastName;
        }
     
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
     
        public String getFirstName() {
            return firstName;
        }
     
        public void setFirstName(String firstName) {
            this.firstName = firstName;
        }
     
        public String getEmail() {
            return email;
        }
     
        public void setEmail(String email) {
            this.email = email;
        }
     
        public String getPhone() {
            return phone;
        }
     
        public void setPhone(String phone) {
            this.phone = phone;
        }
    }
    Et voici l'erreur:

    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
    > Task :Main.main() FAILED
    Exception in Application start method
    Error
    No suitable driver found for jdbc:mysql://localhost:3308/lapasserelle?serverTimezone=UTC
    java.lang.reflect.InvocationTargetException
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.base/java.lang.reflect.Method.invoke(Method.java:564)
    	at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
    Caused by: java.lang.RuntimeException: Exception in Application start method
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
    	at java.base/java.lang.Thread.run(Thread.java:832)
    Caused by: javafx.fxml.LoadException: 
    /C:/Users/jerem/OneDrive/Bureau/Projets/java/office/build/resources/main/com/jeremy/GUI/Office.fxml
     
    Caused by: java.lang.RuntimeException: Exception in Application start method
     
    	at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2629)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2607)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2470)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3241)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3198)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3167)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3140)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3117)
    	at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3110)
    	at com.jeremy.Main.start(Main.java:19)
    	at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
    	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
    	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    	at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    	at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    	at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    	... 1 more
    Caused by: java.lang.NullPointerException
    	at com.jeremy.GUI.OfficeController.initialize(OfficeController.java:37)
    	at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2577)
    	... 17 more
    Exception running application com.jeremy.Main
     
    Caused by: javafx.fxml.LoadException: 
     
    Caused by: java.lang.NullPointerException
     
    Execution failed for task ':Main.main()'.
    > Process 'command 'C:/Program Files/AdoptOpenJDK/zulu14.fx/bin/java.exe'' finished with non-zero exit value 1
     
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    J'utilise IntelliJ comme IDE.

    En vous remerciant d'avance pour votre aide.

    Jérémy

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    août 2005
    Messages
    6 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : août 2005
    Messages : 6 590
    Points : 22 925
    Points
    22 925
    Billets dans le blog
    50
    Par défaut
    C'est un soucis de pilote JDBC qui n'a rien a voir avec JavaFX en lui-même. L'erreur est assez claire : il n'arrive pas a trouver le pilote JDBC MySQL. Il manque probablement une ligne dans le style Class.forName("com.mysql.jdbc.Driver");.

    Pour le reste Connection con = new Database().getConnection(); fait foirer le chargement du contrôleur de ton FXML en crashant puisque le pilote est absent car tu ne gères pas l'exception potentielle dans la méthode initialize() de ton contrôleur.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Futur Membre du Club
    Homme Profil pro
    en formation
    Inscrit en
    juin 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : en formation

    Informations forums :
    Inscription : juin 2019
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    En effet, il manquait cette ligne dans mon fichier graddle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    compile 'mysql:mysql-connector-java:8.0.22'
    Je vous remercie pour votre aide

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

Discussions similaires

  1. java.sql.SQLException: No suitable driver
    Par lunart dans le forum JDBC
    Réponses: 17
    Dernier message: 09/06/2006, 12h54
  2. Problème d'accès MS Access : "No suitable driver"
    Par Alexino2 dans le forum JDBC
    Réponses: 1
    Dernier message: 19/05/2006, 07h54
  3. [JDBC]probleme eclipse : no suitable driver
    Par nass06 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 28/04/2006, 09h56
  4. [JDBC][Débutant] Exception : No suitable driver
    Par Prophetis dans le forum JDBC
    Réponses: 7
    Dernier message: 25/10/2005, 00h50

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