# Daten aus einer MySQL-Datenbank auslesen



## Star82 (9. Aug 2005)

Hallo!

Diese Frage habt ihr sicher schons sehr oft beantworten müssen, aber ich finde einfach keine Lösung dazu.
Ich habe einen MySQL-Server auf meinem lokalen Computer installiert. Er läuft auch, hab über die Command-Line eine Testtabelle erstellt und ein paar Datensätze eingetragen. Aber ich bekomme einfach keine Verbindung zusammen. Kann mir bitte jemand helfen!!! - kenn mich leider auch nicht sehr gut damit aus.

Der Quellcode wäre:

```
import java.sql.*;

public class DBConnection {

	private Connection mConnection;
	private Statement mStatement;
	private ResultSet mResultSet;
	private String msUsername;
	private String msPassword;
	private String msHost;
	private String msDatabase;

	public DBConnection(String xsHost,String xsDatabase,String xsUsername,String xsPassword){
		this.msHost=xsHost;
		this.msDatabase=xsDatabase;
		this.msUsername=xsUsername;
		this.msPassword=xsPassword;
	}
	
	public boolean getConnection(){
		String sConnection="jdbc:mysql://"+msHost+"/"+msDatabase+"?user="
		+msUsername+"&password="+msPassword;
		
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
		}catch(Exception e){
			return false;   
		}
		try{
			mConnection = DriverManager.getConnection(sConnection);
		}catch(SQLException ex){
		      return false;
		}
		return true;
	}
	
	public void makeRequest(){

		try {
		  // DB-Statement Objekt erzeugen
		  mStatement = mConnection.createStatement();

		  // Result-Set Objekt erzeugen und initialisieren
		  mResultSet = mStatement.executeQuery("SELECT * FROM beschreibung");

		  // Navigation ueber das ResultSet
		  while(mResultSet.next()) {
		  	// Zugriff auf das ResultSet
		  	System.out.print(mResultSet.getString("bereich")+" "+
		  			mResultSet.getString("dateinamen")+" "+
					mResultSet.getString("bearbeiter"));
		  }
		  mResultSet.close();
		  mStatement.close();
		  mConnection.close();
		} 
		catch(SQLException sql)
		{
		  System.out.println("SQL-Fehler: " + sql); 
		}
	}
	
	public static void main (String [] args) {
		DBConnection con = new DBConnection("localhost", "DB-Name", "User-Name", "PWD");
		con.getConnection();
		con.makeRequest();
	}
}
```

Bei mConnection = DriverManager.getConnection(sConnection); geht er immer ins catch hinein!
Wäre für ein bisschen Hilfe wirklich sehr dankbar!!

LG Star


----------



## DP (9. Aug 2005)

http://www.java-forum.org/de/viewtopic.php?t=1529

http://www.java-forum.org/de/viewtopic.php?t=4768

und ferner wäre es interessant wie die exception aussieht, die geworfen wird...


----------



## KSG9|sebastian (9. Aug 2005)

und nimm den treiber von mysql.com


----------



## DP (9. Aug 2005)

und hör mit dem dreck von jdbc-odbc-bridge auf


_//Edit Sebastian: Schneller ;p_


----------



## Star82 (9. Aug 2005)

Also genau Volltreffer.
Die Fehlermeldung ist java.sql.SQLException: No suitable driver

Hab mir jetzt den Beitrag zu diesem Thema durchgelesen, aber das bringt mich leider auch nicht sehr viel weiter.

String sConnection="jdbc:mysql://"+msHost+"/"+msDatabase+"?user="+msUsername+"&password="+msPassword; 

Wenn ich ehrlich bin, ist mein Problem, dass ich nicht genau weiß, was ich da hineinschreiben soll
 (vor allem bei msHost). Wenn ich im Internet-Explorer http://localhost eingebe komme ich automatisch zu meinem Tomcat-Server, den ich auch lokal auf meinem Rechner installiert habe - vielleicht ist das das Problem.
Noch einmal - vielen Dank für eure Hilfe!


----------



## Star82 (9. Aug 2005)

Hab mir jetzt von http://www.mysql.com/downloads/api-jdbc.html ein zip-File mysql-connector-java-3.1.10.zip heruntergeladen. Dieses zip-File enthält mehrer jar-Files, Ordner, ...

Was muss ich jetzt wo hinzufügen??


----------



## Jörg (10. Aug 2005)

du brauchst das  mysql-connector-java-3.1.0-bin.jar im classpath, also entweder ganz krass 
in deinem $JAVA_HOME/lib/ext oder eben innerhalb der Applikation mit java -cp $CLASSPATH:$APP_HOME/lib/mysql-connect...jar

außerdem stand in http://www.java-forum.org/de/viewtopic.php?t=1529 auch: 





> conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName, user, passwd)


also noch der _Port_ den du scheinbar vergisst.
Ansonsten müßte es passen


----------



## Star82 (11. Aug 2005)

Jetzt gehts endlich!!
Danke für eure Hilfe!!


----------

