# JDBC für anfänger



## pHL (3. Feb 2010)

hi,

wollte mal fragen ob ihr ein gutes tutorial kennt wo erklärt wird wie man mit eclipse und MySQL
JDBC programmiert. Ich weiß dass man da einen Treiber braucht, hab aber leider keine Ahnung wie 
man den in Eclipse einbindet oder so. Ich möchte einfach mal ein kleines Beispiel Programm schreiben 
und dieses dann auch testen.

mfg
phl


----------



## Atze (3. Feb 2010)

http://clieber.de/jdbc.pdf

ist wirklich nicht schwer, schaffste schon  hab das tut nur kurz überflogen, sah ganz brauchbar aus


----------



## pHL (3. Feb 2010)

so danke schon mal, 

hab das jetzt ausprobiert und bekomm folgende exception: ClassNotFoundException 
d.h dass ich den Treiber ins falsche Verzeichniss kopiert habe?

ps:
in dem tut steht diese zeile:

```
Class.forName("com.mysql.jdbc.Driver").getInstance();
```
das getInstance gibt es bei mir nicht??

bin am verzweifeln mit dem JDBC
mfg


----------



## mg_666 (3. Feb 2010)

Dein Treiber eingebunden? Musst in die Properties des Projekts und im Punkt BuildPath den Treiber einbinden über addJar.


----------



## pHL (3. Feb 2010)

ty an alle, jetzt funktionierts


----------



## rocknralle (6. Feb 2010)

hallo,

habe auch dieses beispiel ausprobiert, jedoch bekomme ich 
die fehlermeldung obwohl ich  den connector/j im buildpath 
hochgeladen habe...(?)

habe ich etwa falsche komponenten installiert/verwendet??? 

meine mysql-version:
mysql-essential-5.1.43-win32

mein connector/j:
mysql-connector-java-5.1.11-bin.jar


hier nochmal meine Exception:

```
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	The method getInstance() is undefined for the type Class<capture#1-of ?>

	at MeineErsteAbfrage.main(MeineErsteAbfrage.java:14)
```


danke schon mal vorab!


----------



## maki (6. Feb 2010)

Zeig mal die Zeile 14, oder besser gleich mal etwas mehr Code


----------



## pHL (6. Feb 2010)

schreib statt getInstance einfach newInstance, ich weis zwar noch nicht warum aber es funktioniert


----------



## rocknralle (6. Feb 2010)

danke für die antworten! 

hm... wenn ich durch newInstance() erstetze funktioniert es bei mir auch nicht. 

habe folgendes developmentkit: 
jdk1.6.0_18
könnte es auch evtl. daran liegen?


hier ist der vollständige quelltext:


```
import java.sql.*;

public class MeineErsteAbfrage {
	

	
	public static void main(String[] args){
		
		Connection con  = null;
		Statement stmt  = null;
		ResultSet rs	= null;
		
		try{
			Class.forName("com.mysql.jdbc.Driver").getInstance();
		}catch(ClassNotFoundException e){
			e.printStackTrace();
			System.exit(1);
		}
		try{
			con=DriverManager.getConnection("jdbc:mysql://localhost/filme","root","root");
			stmt=con.createStatement();
			rs=stmt.executeQuery("Select nr, name, sonstiges FROM TEST_TABELLE");
			
			while(rs.next()){
				System.out.println("Nr:       "+rs.getString(1));
				System.out.println("Name:       "+rs.getString(2));
				System.out.println("Sonstiges:       "+rs.getString(3));
			}
			
			stmt.close();
			con.close();
		}catch(SQLException e){
			e.printStackTrace();
			return;
		}
	}
		
}
```

im anhang habe ich nochmal ein screenshot vom package-explorer hochgeladen.


----------



## maki (6. Feb 2010)

getInstance() ist falsch, newInstance() ist richtig, ein fehlerhaftes Tutorial kann einem viel Ärger machen


----------



## rocknralle (6. Feb 2010)

jo, richtig - jetzt klappt es bei mir auch!
ich hatte außerdem auch noch einen schreibfehler in meiner sql-tabelle gehabt. 

aber nochmals danke an alle die an diesem thema mitgewirkt haben!


----------



## Atze (7. Feb 2010)

maki hat gesagt.:


> getInstance() ist falsch, newInstance() ist richtig, ein fehlerhaftes Tutorial kann einem viel Ärger machen



das nehm ich jetzt persönlich  hab das tut ja nur überflogen und geposted, ist mir nicht aufgefallen


----------



## maki (7. Feb 2010)

War nicht persönlich gemeint 

Das Problem mit Tutorials für JDBC ist, dass es viel zu viel Schrott gibt, deswegen imho am besten auf die MySQL Doku verweisen, oder die Insel oder sonst etwas etabliertes, aber heute meint wirklich jeder er müsst ein Tutorial schreiben, gilt zB. auch für Hibernate und ähnliches.


----------



## rocknralle (7. Feb 2010)

also ich finde das thema "datenbankanbindung" generell etwas schwierig; "da man vor lauter bäumen den wald nicht mehr sieht". es gibt einfach zu viele alternativen/varianten die meißtens leider sehr knapp beschrieben bzw. dokumentiert werden... 

als absoluter anfänger ist es daher nicht leicht den überblick zu behalten, bzw. die richtigen suchbegriffe zu finden. beim probieren passieren fehler ja recht schnell. 

z.B. weiß ich immer noch nicht so richtig wann, wie oder wofür ich hibernate, tomcat, hsqldb & co, oder das sql-server-plugin benutzen muss. 

daher fand ich das tutorial, von allem was ich im netz gefunden habe, bisher am besten. (bis auf den fehler . -@atze: nicht bös gemeint!)

_...hoffentlich habe ich jetzt keinen auf die füße getreten. gut, dass es das forum hier gibt, sonst hätte ich wahrscheinlich java schon den rücken gekehrt!_:toll:


----------



## pHL (8. Feb 2010)

also mir hat das tut sehr geholfen, wenn man mit eclipse arbeitet sieht man durch die autovervollständigung recht schnell dass es getInstance nicht gibt. und weiterarbeiten werden ich jz 
mit der insel


----------



## pcProfie (12. Aug 2012)

leute ich bin neu hier und habe das auch mal ausprobiert.
brauche ich sql wenn ich den text von buttons und textareas (ca. 5 texte pro 30 seiten) in eine tabelle packen möchte??? wenns auch mit excel geht dann sagt bitte bescheid!!!
sql geht immernoch nicht :noe:.

```
Class.forName("com.mysql.jdbc.Driver").newInstance();
```
er meckert immernoch: 
Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	Unhandled exception type InstantiationException
	Unhandled exception type IllegalAccessException

	at MeineErsteAbfrage.main(MeineErsteAbfrage.java:10)
nochwas: im package explorer wird dieser treiber nicht angezeigt. wie krieg ich den darein :bahnhof:
what to do???


----------



## Camino (12. Aug 2012)

pcProfie hat gesagt.:


> brauche ich sql wenn ich den text von buttons und textareas (ca. 5 texte pro 30 seiten) in eine tabelle packen möchte??? wenns auch mit excel geht dann sagt bitte bescheid!!!



Häh, wie bitte? Versteh ich jetzt nicht, was diese Frage soll. SQL braucht man, um mit einer Datenbank zu kommunizieren, d.h. mit SQL kann man z.B. Datensätze aus einer Datenbank abfragen (SELECT), einfügen (INSERT), ändern (UPDATE) oder löschen (DELETE). Text von Buttons und Textareas in eine Tabelle packen? Wenn du etwas in eine Datenbanktabelle hinzufügen möchtest, brauchst du dafür SQL. Keine Ahnung, was das nun mit Excel zu tun hat.



> sql geht immernoch nicht :noe:.
> 
> ```
> Class.forName("com.mysql.jdbc.Driver").newInstance();
> ...



Normalerweise reicht es, wenn der JDBC-Treiber richtig in den Buildpath des Projektes eingebunden wird. Das jar-File mit dem JDBC-Treiber in einen Ordner lib in dein Projekt, dann mit Rechtsklick auf die jar-Datei und zum Buildpath hinzufügen. Das Class.forName ist mittlerweile nicht mehr nötig.


----------

