Pilote JDBC - ClassNotFoundException, NetBeans

J'ai beaucoup cherché et a passé beaucoup de temps à essayer registre du pilote JDBC.

Tout d'abord, j'ai copié mon ojdbc7.jar fichier (téléchargé à partir d'Oracle) dans le répertoire indiqué ci-dessous:

Driver File(s): /Users/Kamil/glassfish4/jdk7/jre/lib/ext/ojdbc7.jar
Driver Class: oracle.jdbc.OracleDriver
//this is copied from Services/Databases/Drivers/ojdbc

Ensuite, j'ai essayé le code suivant:

try {
    Driver myDriver = new oracle.jdbc.driver.OracleDriver();
    DriverManager.registerDriver(myDriver);
} catch (ClassNotFoundException ex) {
    System.out.println("Error: unable to load driver class!");
    System.exit(1);
}

... et celui-ci:

try {
    Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException ex) {
    System.out.println("Error: unable to load driver class!");
    System.exit(1);
}

... et avec cette ligne à la place:

Class.forName("oracle.jdbc.driver.OracleDriver");

Je reçois toujours ClassNotFoundException 🙁

Voici le code j'essaie de le lancer:

Connection DBconn;
String USER = "root";
String PASS = "root";
System.out.println("Connecting to database...");

DBconn = DriverManager.getConnection("mysql://localhost:3306/RestToolDatabase", USER, PASS);

System.out.println("Creating statement...");
Statement stmt = DBconn.createStatement();
String sql;
sql = "select surname, id, age\n"
        + "from customers \n"
        + "where name = \"maria\" \n"
        + "order by id;";
ResultSet rs = stmt.executeQuery(sql);

J'ai aussi lu sur la définition du classpath comme décrit ici:

  • Cliquez-droit sur votre Projet.
  • Sélectionnez Propriétés.
  • Sur le côté gauche, cliquez sur Bibliothèques.
  • En vertu de l'onglet Compiler - cliquez sur Add Jar/Folder bouton.

    mais il n'y a pas de "Propriétés/Bibliothèques" option dans NetBeans...

J'utilise Maven et il y a dépendance suivant ajouté par certains de la bibliothèque:

<dependency>
    <groupId>ojdbc</groupId>
    <artifactId>ojdbc</artifactId>
    <version>14</version>
    <type>pom</type>
</dependency>

Peut-être il ya une certaine solution de contournement, ou d'un autre moyen pour l'ajouter automatiquement? Il DOIT être simple mais je suis inexpérimenté et gaspillé beaucoup de temps sur cette. S'il vous plaît aider.

MODIFIER: Merci pour les réponses, oui, j'utilise MySQL Server at localhost:3306 [racine]. J'ai JDBC MySQL connector installé ici:

/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/ide/modules/ext/mysql-connector-java-5.1.23-bin.jar

Lorsque je vais dans "Services" --> "Pilotes" --> "MySQL Connector/J pilote)" il est le Pilote du chemin de Classe, exactement comme vous l'avez suggéré, j'ai donc utiliser la Classe.forName("com.mysql.jdbc.Le pilote") maintenant.
J'ai cliqué droit sur "MySQL Connector/J pilote)" pilote et est allé à "se Connecter en Utilisant..." --> "localhost, port 3306, utilisateur, mot de passe". Et il est connecté maintenant, je vois une nouvelle connexion. Mais encore obtenir ClassNotFoundException.

EDIT 2 - cette solution a fonctionné pour moi:

J'ai ajouté, à la suite des dépendances dans pom.xml:

    </dependency>
        <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.23</version>
</dependency>

... et bâti de la demande; le pilote a été téléchargé et installé. Aussi simple que ça... j'ai passé beaucoup de temps sur ce... Il fonctionne - ouais! 🙂

  • 1a) ne pas utiliser lib/ext, 1b) êtes-vous sûr que c'est la JVM qui exécute votre application, 2) êtes-vous de la connexion à Oracle ou MySQL
  • Re votre edit: C'est seulement interne à Netbeans, lors de l'exécution d'une application, le pilote doit être dans le classpath de l'application. Je dirais que la relative barre latérale doit avoir suffisamment de questions semblables à des problèmes et des solutions.
  • OK, je vois. Puis-je vous demander où en est l'application de chemin de classe? Est-ce Nomduprojet/ dossier ou Nomduprojet/src/ ou Nomduprojet/cible/? Je suppose que je devrais supprimer le pilote de NetBeans interne classpath.
  • Lors de l'exécution de l'intérieur Netbeans, c'est le chemin de génération configuré pour le projet dans Netbeans. En dehors de Netbeans, il dépend du déploiement etc et n'est pas quelque chose a expliqué dans une réponse courte. Et non, vous ne devez pas supprimer de NetBeans interne classpath, parce que le plus probable, c'est utilisé à l'intérieur de Netbeans si vous utilisez sa base de données interne d'accès.
InformationsquelleAutor kiedysktos | 2014-08-04