# Access Datenbank in Java (Eclipse) einbinden



## Tourisme35 (2. Apr 2007)

Wie kann ich eine Access Datenbank in Eclipse einbinden und durch ein erstelltes Suchformular in einer Liste ausgeben?
Hat jemand eine gute Anleitung?

Habe etwas gefunden, wo man so ODBC Treiber in der Systemsteuerung installieren muss und dann über einen SQL Explorer in Eclipse auf die Access Datenbank kommt.. aber ich hab kein Plan wie ich dies mit dem Formular verbinden soll


----------



## Guest (3. Apr 2007)

Also ich würd dir schon mal abraten über einen SQLExplorer zu gehen, mach dir ne DB-Schnittstelle in Form einer eigenen Java-Klasse. Dazu kannst du z. B. hier Handbuch der Java-Programmierung nachlesen wie man über Java auf Datenbank zugreift und die Ergebnisse dieser Zugriffe dann auch verarbeitet


----------



## Tourisme35 (3. Apr 2007)

Hier ist so ein Beispiel 
http://www.tutorials.de/forum/java/201081-die-beispiele-des-videoworkshops-zum-thema-jdbc.html

aber das läuft dann nur in der Konsole ab..
Wie krieg ich das in der grafischen Oberfläche auf einen Button als Action Performed hin? kriege jedesmal ein Fehler wegen "throws" o.ä.


----------



## KSG9|sebastian (3. Apr 2007)

schau dir mal die Grundlagen an, und dannach kannste dann an GUI/DB-Anwendungen rangehen


----------



## Guest (3. Apr 2007)

kannst du mir sagen wie ich das in den Action Performed Button reinkrieg?


```
Connection con = DriverManager
 				.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ="
 						+ dbpath);
  
  		Statement stmt = con.createStatement();
  
  		ResultSet rs = stmt.executeQuery(" SELECT * FROM Computer ");
  
  		ResultSetMetaData rsmd = rs.getMetaData();
  		int clmCnt = rsmd.getColumnCount();
  
  		while (rs.next()) {
  			for (int i = 1; i <= clmCnt; i++) {
 				//System.out.print(rs.getString(i));
  				//System.out.print(" ");
                                // hier soll dann später eine Liste mit lfList. erstellt werden
  			}
  			//System.out.println();
  		}
  
  		con.close();
```


----------



## Tourisme35 (3. Apr 2007)

so sieht der Anfang vom Button aus.. (Fehler!)


```
public void actionPerformed(java.awt.event.ActionEvent e) [b]throws Exception[/b]  {
System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbpath = "C:/Lager.mdb";

Connection con = DriverManager
		.getConnection("jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ="
			+ dbpath);

Statement stmt = con.createStatement();

.......
```


Beim ausführen kommt immer dieser Fehler:


```
Exception in thread "AWT-EventQueue-0" java.lang.Error: Unaufgelöstes Kompilierungsproblem: 
	Ausnahmebedingung Exception ist nicht kompatibel mit Throws-Klausel in ActionListener.actionPerformed(ActionEvent)

	at paketLagerDatenbank.HauptFenster$2.actionPerformed(HauptFenster.java:165)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
```


----------



## KSG9|sebastian (3. Apr 2007)

Benutz mal ne IDE, z.B. Eclipse. Die wird dir dann sagen dass die Methode actionPerformed kein "throws Exception" zulässt.

Und: Hör bitte auf mit der deutschen Version. "Unaufgelöstes Kompilierungsproblem"..mir wird schlecht


----------



## Tourisme35 (3. Apr 2007)

hi.. das habe ich mit Eclipse gemacht.

Wenn ich das mit "throws Exception" weglasse kommt oben beim Button kein Fehler, aber unten bei 
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ...

ist alles rot


----------



## y0dA (3. Apr 2007)

ja dann mach halt mal einen try/catch Block drum herum..

Weiters empfehle ich dir dringends dir Patterns anzusehen (in deinem Fall eventuell DAO; MVC wäre sicher auch fürs Verständnis gut), es ist nicht wirklich schön gelöst diesen ganzen Connection Kram in dieser Form in den Button zu schreiben.


----------



## Tourisme35 (4. Apr 2007)

jo danke mit dem Try/Catch hat es nun geklappt


----------



## y0dA (4. Apr 2007)

Wenn du Eclipse nun tatsächlich benutzt, dann sollte dir selbiges diesen try/catch Block eh vorschlagen.

mfg


----------

