Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Java und MySQL = java.sql.SQLException: No suitable driver

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

hab mich mal etwas mit Java und MySQL auseinader gesetzt und bin gerade am scheitern....

Folgende Situation:

Habe hier ein Script das auf eine MySQL-Datenbank zugreifen soll die auf dem localhost läuft.

Installierte Software:

-WAMP-Server (php,phpmyadmin etc...)

-JBuilderX

-MySQL ODBC Treiber

-mysql-connector-java-3.1.12-bin.jar --> Brauche ich den wirklich? Liegt bei mir im JBuilder X - Ordner unter /lib

Hier mal der Code:

package datenbanksql;


import java.sql.*;

import java.io.*;


public class database {

  public database() {

  }


  public static void main(String args[]) throws IOException {

    database database1 = new database();

    BufferedReader input = new BufferedReader(

        new InputStreamReader(System.in));


    //Einlesen des Benutzernamen

    String usr = "";

    System.out.print("\nBitte Benutzername der Datenbank eingeben: ");

    usr = input.readLine();


    //Einlesen des Passwort

    String pwd = "";

    System.out.print(

        "Wenn kein Passwort vorhanden, bitte mit 'Eingabe' bestätigen. ");

    System.out.print("Bitte Passwort eingeben: ");

    pwd = input.readLine();


    try {

      Class.forName("com.mysql.jdbc.Driver");

    }

    catch (Exception e) {

      System.err.println(

          "Es ist Fehler beim laden des JDBC-ODBC Treibers aufgetreten: " +

          e);

      return;

    }

    Connection conn;

    Statement stmt;

    ResultSet rSet;

    String url = "jdbc:mysql://127.0.0.1/test";

    try {

      conn = DriverManager.getConnection("url", "usr", "pwd");

      stmt = conn.createStatement();

      String sqlQuery = "SELECT tbl_1 FROM test";

      rSet = stmt.executeQuery(sqlQuery);

    }

    catch (Exception e) {

      System.err.println(

          "Es ist ein Fehler beim Datenbankzugriff aufgetreten: " + e);

      return;

    }

    try {

      while (rSet.next()) {

        System.out.println(rSet.getString(1) + "\t" + rSet.getString(2));

      }

      stmt.close();

      conn.close();

    }

    catch (Exception e) {

      System.err.println("Fehler bei der Tabellenabfrage" + e);

      return;

    }

  }

}

Wenn ich das ganze ausführe bekomme ich diesen Fehler: "java.sql.SQLException: No suitable driver"

Habe jetzt mehrere Treiber mal durchprobiert und auch das brachte kein besseres ergebniss...

Hat jemand da eine Idee???

Gruß Simon

guck, dass dein Connector im Klassenpfad liegt.

gruss

Ich denke, daß der Fehler hier liegt

conn = DriverManager.getConnection("url", "usr", "pwd");

du musst die Anführungszeichen weglassen, um die in den Variablen gespeicherten Daten zu benutzen

guck, dass dein Connector im Klassenpfad liegt.
Nur hat es damit überhaupt nichts zu tun. Wer Fehlermeldungen lesen und verstehen kann ist klar im Vorteil. Wäre der Treiber nicht im Classpath, so würde schon Class.forName("com.mysql.jdbc.Driver"); eine ClassNotFoundException werfen, und das Programm würde schon vor der Verwendung des DriverManagers aussteigen.

Der Fehler liegt - wie schon angesprochen - beim Aufruf von DriverManager.getConnection.

DriverManager.getConnection("url", "usr", "pwd");

muss korrekt lauten

DriverManager.getConnection(url, usr, pwd);

Ansonsten würde JDBC versuchen einen Treiber für die URI "url" zu finden - den gibt es allerdings nicht, und von daher kommt auch - vollkommen nachvollziehbar - die Meldung "no suitable driver".

den mysql-connector-java-3.1.12-bin.jar habe ich über die standartprojekt eigenschaften im JBuilder eingebunden.

Oder gibt es noch eine andere Möglichkeit?

Gruß Simon

Der Fehler liegt - wie schon angesprochen - beim Aufruf von DriverManager.getConnection.

DriverManager.getConnection("url", "usr", "pwd");

muss korrekt lauten

DriverManager.getConnection(url, usr, pwd);

Ansonsten würde JDBC versuchen einen Treiber für die URI "url" zu finden - den gibt es allerdings nicht, und von daher kommt auch - vollkommen nachvollziehbar - die Meldung "no suitable driver".

Darf ich dir die Füße küssen?

:uli

Vielen Dank.....

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.