# Java mit MySQl verbinden



## nickname (8. Mai 2009)

Hi Leute,
ich glaube, ihr könnt das wohl nicht mehr lesen aber ich komme einfach nicht mehr weiter!

Wollte gerne mit meiner DB (MySQL) Verbindung aufnehmen. Hab´s auch schon mit einem Geisterbeschwörer versucht aber er bekommt das auch nicht hin.

Ich arbeite mit MySQL Query Browser.

Was ich bis jetzt habe und welcher Fehler mir angezeigt wird:

```
String driver_ID = "com.mysql.jdbc.Driver";
try
		{
			Class.forName(driver_ID);
		}
			catch(ClassNotFoundException cnfe)
			{
				System.out.println("Erste Exception:  " + cnfe.toString());
	            System.exit(1);
			}
		
		try 
		{
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/e:/MySQL_Server/data/car/auto", "passWortStimmt", "m123456789");
			
			}
			catch(SQLException sqle)
			{
				System.out.println("Zweite Exception:  " +sqle.toString());
			}
	}
```
Ich bin mir mit "e:/MySQL_Server..." nicht sicher, ob das richtig ist.

Und diese Fehlermeldung bekomme ich immer


```
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'e:/mysql_server/data/car/auto'
```

Ich fange gerade mit der DB an. In Java habe ich schon ein wenig Erfahrung, nur diese DB-Programmierung :noe:

Danke euch!

gruß nickname


----------



## tfa (8. Mai 2009)

In die URL gehört der Name des Datenbankschemas und nicht irgenwelche Pfadangaben.
Im Zweifel kannst du diese Angabe auch weglassen.


----------



## homer65 (8. Mai 2009)

Nimm mal statt e:/mysql_server/data/car/auto einfach nur mysql.


----------



## nickname (8. Mai 2009)

Danke erst mal!

Es sieht jetzt so aus

```
try 
		{
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "monet3141592");
			System.out.println(" " + con);<-- Hab noch das eingefügt.
			}
			catch(SQLException sqle)
			{
				System.out.println("Zweite Exception:  " +sqle.toString());
			}
	}
```

(Hab vllt vergessen zu erwähnen, dass ich das mit eclipse erstelle.)

Was ich jetzt bekomme ist folgendes:

```
com.mysql.jdbc.JDBC4Connection@94948a
```
heißt das nun, dass ich mit der Datenbank verbunden bin?

Ich habe mit 
	
	
	
	





```
jdbc:mysql://localhost:3306/e:/MySQL_Server/data/car/auto
```
gedacht, dass ich z.B. die Tabelle "auto" direkt anspreche, um dort die Daten zu verändern oder auszulesen.

Wie kann ich denn eigentlich nun auf meine Tabelle "auto" jetzt zugreifen?


```
@tfa  In die URL gehört der Name des Datenbankschemas
```
hab ich auch schon mal gesehen, wußte aber ncht was ich damit anfangen sollte???:L

Danke!

gruß nickname


----------



## void (8. Mai 2009)

nickname hat gesagt.:


> Was ich jetzt bekomme ist folgendes:
> 
> ```
> com.mysql.jdbc.JDBC4Connection@94948a
> ...



Genau das heisst es.


----------



## nickname (8. Mai 2009)

Danke dir! , dann versuche ich es mal weiter. Melde mich bestimmt noch mal;(

gruß nickname


----------



## nickname (8. Mai 2009)

Hi,

hab jetzt mal versucht in eine einfache Tabelle mit 2 Spalten Daten einzufügen, mit:

```
static Connection con = null;
static Statement stat = null;
static ResultSet rs = null;
try 
		{
			con = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "monet3141592");
			
			final String sta = "insert into eins (Name,Vorname) values ('Mustermann', 'Max');";
			stat = con.createStatement();
			stat.executeUpdate(sta);
			}
			catch(SQLException sqle)
			{
				System.out.println("Zweite Exception:  " + sqle.toString());
			}
	}
```
bekomme aber folgenden Fehler:

```
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'mysql.eins' doesn't exist
```
Ich habe diese DB doch erstellt und ist sie ist auch vorhanden!

Der Ordner, in der die "eins" liegt sieht so aus _"e:/MySQL_Server/data/neu/eins.frm"_
Hab es auch schon mit der gesamten url in _"insert into..."_ versucht:noe:

Wieso komme ich nicht an die Tabelle?

Danke! 
gruß nickname


----------



## sparrow (8. Mai 2009)

Wie ist denn der Name der Datenbank?

Also sowohl deine Tabelle als auch die Datenbank hat ja einen Namen.
Bisher verbindest du dich mit der Datenbank "mysql", ich bin mir aber fast sicher, dass du darin nicht die Tabelle erstellt hast.
Ich kenn mich mit mySQL nicht aus, aber der Datenpfad deutet darauf hin, dass die Datenbank unter Umständen "neu" heißt.
Du müsstest also die URL der Verbindung anpassen und, falls ich recht habe, mysql durch neu ersetzen.


----------



## nickname (8. Mai 2009)

Hi sparrow,

danke, ich glaube deine Frage war der Schlüssel!

Mit
	
	
	
	





```
final String sta = "insert into [COLOR="Red"]neu.eins[/COLOR] (Name,Vorname) values ('Seik', 'Andreas');";
```
hat es geklappt. Ich habe die neuen Daten einfügen können:toll:
statt
	
	
	
	





```
final String sta = "insert into [COLOR="Red"]eins[/COLOR] (Name,Vorname) values ('Seik', 'Andreas');";
```
hat es geklappt. Ich habe die neuen Daten einfügen können:toll:

Der Name der DB ist "neu".


----------



## nickname (8. Mai 2009)

@sparrow, Du warst etwas schneller als meine Antwort. Danke dir trotzdem!!!

gruß nickname


----------



## sparrow (8. Mai 2009)

Versuch mal ohne das eins. und dafür:

```
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/[color=red]neu[/color]", "root", "monet3141592");
```
Das kommt mir sauberer vor als immer den Datenbanknamen in den Querys mitzugeben.


----------



## nickname (8. Mai 2009)

Hi,

hab es nach deinem Bsp. so versucht:

```
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/[COLOR="Red"]neu[/COLOR]", "root", "monet3141592");
final String sta = "insert into [COLOR="Red"]eins[/COLOR] (Name,Vorname) values ('Muster', 'Max');";
```
funktioniert auch!!:toll:

Danke!

gruß nickname


----------

