# Das tolle "No suitable driver found"



## Guest (15. Jun 2007)

Hey Leute,

also ich habe diverse Beiträge hierzu in eurem Forum gelesen, aber bei mir läufts immer noch nicht.
Zuerst mal alle Schritte, die ich gemacht hab

1) eine lokale Datenbank über xammp angelegt
2) in Eclipse den Quelltext geschrieben
3) ins Wurzelverzeichnis, also meinen Projektordner die mysql-connecotr-3.0.1.17.jar eingebunden, die wird auch bei der Baumstruktur meines Projektes angezeigt.
4) eclipse Version 3.1.

Dennoch, obwohl also ein localhost existiert und alle Vorgaben wie sie gefordert sind erfüllt sind, kommt immer noc
"No suitable driver found for jdbc:mysql://localhost:3306/dbname" - selbst die Adresse ist regulär, in euren FAQ's hab ich es noch 10 Mal nachgelesen, aber dat läuft auch nicht.

Hier mein Code

```
package server_1106.server;



import java.sql.*;



public class Database {


		
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	      // Parameter für Verbindungsaufbau definieren

	      String driver = "com.mysql.jdbc.Driver";
	      // Loads the Driver
	      try {
	    	  Class.forName(driver);
	      	}
	      	catch (ClassNotFoundException ex) 
	      	{
	      		System.err.println("Unable to load Driver!");
	      		System.err.println(ex);
	      		System.exit(1);
	        }
	      
		// hier muss Datenbankabfrage mit Passwortüberprüfung eingefügt werden!!
		try {
			
			
			  	       DriverManager.registerDriver (new com.mysql.jdbc.Driver()); 
				      // JDBC-Treiber laden
				      Class.forName(driver);
				      
				      //Daten für den Aufbau zur Datenbank
				     String url = "jdbc:mysql://localhost/dbname";

				  	java.sql.Driver d = (java.sql.Driver)Class.forName(driver).newInstance ();
					System.out.println(" Does this driver accept my URL? " + d.acceptsURL(url) );
				
					
				      String username = "xxxx";
				      String password = "xxxx";
				      
				      String Name="test";
				      String Password="test";

				      
				      // Verbindung aufbauen
				      Connection con;
				      con = DriverManager.getConnection(url, username, password);
				      
				     
				      //Wichtig: SQL Anweisung ist vorbereitetes SQL, damit Userueberpruefung erfolgen kann
				      String sql = "SELECT * FROM userdata WHERE userName=? AND userPass =?";
				      PreparedStatement stmt = con.prepareStatement(sql);
				      stmt.setString(1, Name);
				      stmt.setString(2, Password);
				      
				      //Ergebnisverarbeitung
				      ResultSet rs = stmt.executeQuery();
				      System.out.println(rs.getString(sql));
						
				      
				      SQLWarning warnung = stmt.getWarnings();
				      // Gibt es noch Warnungen?
				      while(warnung != null) {
				        // Ausgabe von Fehlermeldung und Fehlercodes
				        System.out.println(warnung.getMessage());
				        System.out.println("ANSI-92 Code: "+warnung.getSQLState());
				        System.out.println("Oracle  Code: "+warnung.getErrorCode());  
				        // Nächste Warnung abrufen.
				        warnung = warnung.getNextWarning();
				      }

				      // Verbindung schließen
				      con.close();
				      
				      
					} catch (Exception ex) 
					{
						System.err.println("Unable to connect to Database!");
						System.err.println(ex);
					}
		

	}

}
```


Sorry, aber ich habe inzwischen so viele Tutorials durchgelesen und unter php arbeite ich sehr gut mit MYSQL, das kann doch nicht so schwer sein, zumal mein Projekt einfach nur scheiße unnötig ind ide Länge gezogen wird.

So ich hör aber lieber mal auf zu fluchen und erbitte Ratschläge!!!

Danke


----------



## Ellie (16. Jun 2007)

1. Bei mir (ich verfuhr nach »Java ist auch eine Insel«) hieß der Treiber	com.mysql.jdbc.Driver4, also mit einem 4 am Ende.

2. Der Treiber wurde bei mir seltsamerweise nie im Classpath gefunden und musste dort jedesmal eigenhändig eingetragen werden … bis es sich herausstellte, das es auch funktioniert, wenn man ihn einfach in das Verzeichnis des JRE unter lib_ext oder so ähnlich kopiert. Von dieser Lösung wurde im Netz jedoch abgeraten, da es nicht überall funktioniere. Für mein eigenes Projekt genügte es.


----------



## HoaX (16. Jun 2007)

wie die treiberklasse heißt sollte eignetlich in der mitgelieferten readme/install/... erwähnt sein.

zu lib/ext/: es sollte schon überall funktionieren, aber da die bibliothek dann für jedes javaprogramm im classpath liegt kann das leicht probleme verursachen. außerdem kann man nicht davon ausgehen dass jeder benutzer dort schreiben darf. die saubere lösung ist, es in den classpath der anwendung aufzunehmen. bei ausführbaren jar-dateien ist das kein beinbruch das ding in die manifest.mf zu schreiben ...


----------



## Guest (16. Jun 2007)

Ja, danke erstmal.

Aber im Prinzip ist das keine Lösung auf mein Problem. Entweder bin ich schwer von Begriff oder irgendwas ist falsch.
Nämlich weder unter xammp noch bei eclipse habe ich unter readme/install entsprechende Anforderungsangaben hinsichtlich des Treibers gefunden.

Mit der Treiber Version bei mir scheint nicht das Problem zu sein, ich habe ja eine entsprechende Exception am Anfang, wenn da "com.mysql.jdbc.Driver4" eingetragen wird, kommt die Exception mit unable to load driver.

Es ist immer noch java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/userxxx

Ich gehe gerade dem 2ten Antwort nach, klingt für einen Profi sicherlich trivial.
Also der connector ist im Verzeichnis, alles wie vorgeschrieben, wenn man dessen Wurzel erweitert steht dort auch
com.mysql.jdbc, com.mysql.jdbc.util und com.mysql.jdbc.jdbc2.optional

[/img]


----------



## Guest (17. Jun 2007)

Hey Leute,

habs jetzt hinbekommen. Wen es interessiert: ich musste das Projekt einfach nochmal komplett neu aufsetzen und dann über Build Path die jar-Datei einbinden.

Danke für eure Mithilfe!!!


----------

