# jdbcodbc brücke - einbinden einer Datenbank in Java



## Joy (17. Feb 2010)

[Java]public void oeffnen()
	{
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			mTreiber="jdbcdbcriver={Microsoft Access Driver (*.mdb)};DBQ=C:\ ... \Lexikon1.mdb";
			objVerbindung=DriverManager.getConnection(mTreiber,"","");
			objAusfuehrung=objVerbindung.createStatement();
		}
		catch (Exception e)
		{
			System.out.println("Treiber konnte nicht geladen werden");
		}
	}[/Java]

der Treiber ist auf meinem Rechner vorhanden, allerdings wird trotzdem immer die Catch-Meldung ausgegeben.
Bei uns in der Schule hat es so funktioniert, und jetzt weiß ich nicht, woran das liegen könnte. Hab auch nichts in der Forum-durchsuchen-Funktion gefunden.
Der Dateipfad stimmt auf jeden Fall.
Ich habe auch schon einiges ausprobiert, hat aber alles nichts gebracht.

Kann mir einer von euch helfen?

Liebe Grüße


----------



## Michael... (17. Feb 2010)

Lass doch mal im catch 
	
	
	
	





```
e.printStackTrace();
```
 ausgeben. Dadurch sollte man eher erfahren warum es zum Fehler kommt.


----------



## Joy (17. Feb 2010)

hier die Fehlermeldung:


```
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Datenbank '(unbekannt)' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von Ihrer Anwendung erkannt, oder die Datei ist beschädigt.
	at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6879)
	at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7036)
	at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3028)
	at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
	at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at paket_Spiel.DBZugriff.oeffnen(DBZugriff.java:19)
	at paket_Spiel.Methode.erfassen(Methode.java:62)
	at paket_Spiel.Erstellen.bsHinzufuegenActionPerformed(Erstellen.java:138)
	at paket_Spiel.Erstellen$2.actionPerformed(Erstellen.java:69)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
	at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
	at java.awt.Component.processMouseEvent(Component.java:5134)
	at java.awt.Component.processEvent(Component.java:4931)
	at java.awt.Container.processEvent(Container.java:1566)
	at java.awt.Component.dispatchEventImpl(Component.java:3639)
	at java.awt.Container.dispatchEventImpl(Container.java:1623)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
	at java.awt.Container.dispatchEventImpl(Container.java:1609)
	at java.awt.Window.dispatchEventImpl(Window.java:1590)
	at java.awt.Component.dispatchEvent(Component.java:3480)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)[/Java]

DBZugriff.oeffnen(DBZugriff.java:19):
[Java]objVerbindung=DriverManager.getConnection(mTreiber,"","");
```

Methode.erfassen(Methode.java:62):

```
objZugriff.oeffnen();
```

Erstellen.bsHinzufuegenActionPerformed(Erstellen.java:138):

```
objWort.erfassen();
```

Erstellen$2.actionPerformed(Erstellen.java:69):

```
bsHinzufuegen.setText("Hinzufügen");
bsHinzufuegen.setVisible(true);
bsHinzufuegen.setPreferredSize(new java.awt.Dimension(117,20));
bsHinzufuegen.setBounds(new java.awt.Rectangle(12,86,117,20));
this.getContentPane().add(bsHinzufuegen, new AnchorConstraint(758,351, 934, 33, 1, 1, 1, 1));
bsHinzufuegen.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
	bsHinzufuegenActionPerformed(evt);
}
```


Kann es sein, dass es deswegen nicht funktioniert, weil ich die Access Datenbank erst unter *.accdb gespeichert habe?


----------



## Michael... (17. Feb 2010)

Hast Du die Datei einfach nur in Endung accdb umbenannt oder ist das eine echte Access 2007 Datenbank.
In letzterem Fall müsste Dein TreiberString in etwa so ausssehen:

```
String mTreiber=
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\meineDatenbank.accdb";
```
Vorrausgesetzt, dass der Treiber 
	
	
	
	





```
Microsoft Access Driver (*.mdb, *.accdb)
```
 auf Deinem System vorhanden ist.


----------



## Joy (17. Feb 2010)

vielen Dank!
Mit dem 
	
	
	
	





```
Microsoft Access Driver (*.mdb, *.accdb)
```
 hat es jetzt funktioniert!


----------

