# MYSQL Anbindung



## friendlyguest (8. Feb 2008)

Hallo,

Hab da so ein Problem und wäre sehr dankbar, wenn ich mir helfen könntet. Und zwar gehts um eine MYSQL Anbindung.


```
import java.io.Console;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;

public class MySql {
	public static void main (String args[])
	{
		String URL = "jdbc:msql://localhost:3306/benutzerdatenbank";
		String benutzername = "root";
		String passwort = "admin";
		
		try{
			Class.forName("com.mysql.jdbc.Driver");
			}
		catch (Exception e) 
		{
			System.err.println(" JDBC/ODBC-Treiber konnte nicht geladen werden.");
			return;
			}
		
		Statement befehl = null;
		Connection verbindung = null;
		
		try
		{
			verbindung = DriverManager.getConnection(
					URL,
					benutzername,
					passwort);
			befehl = verbindung.createStatement();
			}
		catch (Exception e)
		{
			System.err.println("Verbindung zu " + URL +"konnte nicht hergestellt werden");
			}
		
		try
		{
			ResultSet datenmenge;
			datenmenge = befehl.executeQuery("SELECT * FROM benutzer_daten;");
			
			Console cons = System.console();
			
			System.out.println("\n");
			System.out.println("Bundesland \t Einwohner (in Mio)\n");
			System.out.println("\n");
			//cons.system("\n");
			//cons.printf(" Bundesland \t Einwohner (in Mio) \n");
			//cons.printf("\n");
			
			String land;
			int einw;
			
			while(datenmenge.next())
			{
				land = datenmenge.getString("Bundesland");
				einw=datenmenge.getInt("Einw (in Mio)");
				System.out.println(land + " \t\t "+ einw +"\n");
				//cons.printf(" %s \t\t %d \n",land,einw);
				}
			verbindung.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			
		}
	}

}
```

und zwar kommt da immer die exception, dass der odbc treiber nicht gefunden wurde. Kann mir jemand genau erklären, wie ich den treiber einbinde? Wäre sehr dankbar, wenn das jemand ausführlich beschreiben könnte, ich verzweifel schon langsam und auf webseiten war ich schon...ohne erfolg.

Danke


----------



## Gast (8. Feb 2008)

Hallo.


welche entwicklungsumgebung nutzt du? 

dieser Treiber liegt als jar-Datei vor. diesen musst als Library importieren. 

ich nutze den mysql connector ....


----------



## Gast (8. Feb 2008)

http://dev.mysql.com/downloads/connector/j/5.1.html


----------



## Gast (8. Feb 2008)

http://dev.mysql.com/downloads/connector/j/5.1.html


----------



## friendlyguest (8. Feb 2008)

Hallo,

den Connector hab ich schon runtergeladen, bloß weiß ich nicht mit ihm anzufangen. Ich benutze eclipse.

Danke im Voraus


----------



## Gast (8. Feb 2008)

du musst diese jar-datei als bibliothek in dein Projekt eifnügen. 

wenn das klappt merkst du dies daran das er die Import java.sql.Connection und soweiter nicht anmekert.

klappt das kompilieren soweit?


----------



## Gast (8. Feb 2008)

Connection con = DriverManager.getConnection( 
   "jdbc:mysql://localhost:3306/contacts/", props);


bei dir sehe ich 


String URL = "jdbc:msql://localhost:3306/benutzerdatenbank"; 


msql ist das überhaupt richtig???


----------



## Gast (8. Feb 2008)

änder das mal in mysql um.


----------



## friendlyguest (8. Feb 2008)

Hab das jetzt gelöst mit der Dateianbindung, aber das Kompilieren macht Schwierigkeiten.


```
import java.io.Console;
import java.sql.*;

public class MySql {
	public static void main (String args[])
	{
		String URL = "jdbc:msql://localhost/benutzerdatenbank";
		String benutzername = "root";
		String passwort = "admin";
		
		try{
			Class.forName("com.mysql.jdbc.Driver");
			}
		catch (Exception e) 
		{
			System.err.println(" JDBC/ODBC-Treiber konnte nicht geladen werden.");
			return;
			}
		
		Statement befehl = null;
		Connection verbindung = null;
		
		try
		{
			verbindung = DriverManager.getConnection(
					URL,
					benutzername,
					passwort);
			befehl = verbindung.createStatement();
			}
		catch (Exception e)
		{
			System.err.println("Verbindung zu " + URL +"konnte nicht hergestellt werden");
			}
		
		try
		{
			ResultSet datenmenge;
			datenmenge = befehl.executeQuery("SELECT Name, Vorname FROM benutzer_daten;");
			
			
			
			System.out.println("\n");
			System.out.println("Name \t Vorname \n");
			System.out.println("\n");
			//cons.system("\n");
			//cons.printf(" Bundesland \t Einwohner (in Mio) \n");
			//cons.printf("\n");
			
			String land;
			int einw;
			
			while(datenmenge.next())
			{
				String name = datenmenge.getString("Name");
				int vorname=datenmenge.getInt("Vorname");
				System.out.println(name + " \t\t "+ vorname +"\n");
				//cons.printf(" %s \t\t %d \n",land,einw);
				}
			verbindung.close();
		}
		catch (Exception e)
		{
			e.printStackTrace();
			System.err.println("Fehler in Datenbankauslesen :-/");
			
		}
	}

}
```

Der meckert jetzt in Zeile 39 wegen NullPointer.... ka, was der jetzt hat und warum der macken macht.


----------



## Gast (8. Feb 2008)

String URL = "jdbc:msql://localhost/benutzerdatenbank"; 


durch das hier ersetzen!!!! sag mal was er dann sagt.

String URL = "jdbc:mysql://localhost/benutzerdatenbank";


----------



## friendlyguest (8. Feb 2008)

Danke, hat geklappt...hätt ich drauf kommen sollen :-(. Egal, es funktionert

Vielen Dank nochmal,

Gruß


----------



## firendlyguest (8. Feb 2008)

Hätte nochmal ne Frage, und zwar:

Wie bekomme ich die Ausgabe über eine GUI?

Danke im Voraus.


----------



## Leroy42 (8. Feb 2008)

Indem du z.B. eine Tabelle erstellst die du dann mit
den Werten der DB füllst.


----------



## Guest (13. Apr 2008)

Alles schön und gut. Der Connector lässt sich primar als externe Jar einbinden, aber beim exportieren des Programmes wir der Connector nicht mit exportiert! Hat jemand eine Antwort?


----------



## tuxedo (14. Apr 2008)

Ja.

Du solltest hier im Forum mal nach "FatJar" suchen. Oder google nach "FatJar" befragen.

Und immer schön dran denken: Conenctor/J ist GPL. Das heisst du musst bei weitergabe deines Programms den Quellcode offen legen ;-)

- Alex


----------

