# Problem mit der Anbindung zur hsqldb



## Alex_winf01 (30. Okt 2007)

Hallo liebe Forengemeinde:

Ich wollte folgenden Code ausprobieren:


```
import java.sql.*;
import java.util.logging.*;

public class UseHSQLDB 
{

   static Logger log = Logger.getLogger("de.myname.UseHSQLDB");

   public static void main(String[] args)throws SQLException, ClassNotFoundException // Doit better ...
   { 
   		log.log(Level.INFO, "Starting to load JDBCDriver... ");
		Class.forName("org.hsqldb.jdbcDriver");
   		log.log(Level.INFO, "JDBC Driver successfully loaded!");
	   	Connection con = DriverManager.getConnection("jdbc:hsqldb:C:/tmp/musicShop","sa","");// tmp must exist. Right slash.
   		log.log(Level.INFO, "Connection established!");
	   	Statement stmt = con.createStatement();
   		String sqlQuery = "CREATE TABLE cdShop (cdNr INTEGER, cdArtist CHAR(20), cdTitle CHAR(20));";
   		ResultSet rs = stmt.executeQuery(sqlQuery);
   		sqlQuery = "INSERT INTO cdShop VALUES (1,'Groeni','Mensch')";
   		rs = stmt.executeQuery(sqlQuery);
   		sqlQuery = "INSERT INTO cdShop VALUES (2,'Sting','Fields of Gold')";
   		rs = stmt.executeQuery(sqlQuery);
   		sqlQuery = "INSERT INTO cdShop VALUES (3,'Bach','Pluratorium')";
   		rs = stmt.executeQuery(sqlQuery);
		sqlQuery = "UPDATE cdShop SET cdTitle='W-Oratorium' WHERE cdNr=1";
   		rs = stmt.executeQuery(sqlQuery);
   		sqlQuery = "SELECT * FROM cdShop";
   		rs = stmt.executeQuery(sqlQuery);
   		System.out.println("\n\n\nCD Shop DB\n=============\n");
   		int counter = 0;
   		while (rs.next()) 
   		{
      		System.out.println(counter++ +".Datensatz:");
      		int cdNr = rs.getInt("cdNr");
      		System.out.println("\t[cdNr ->" + cdNr + "]");
      		String cdArtist = rs.getString("cdArtist");
      		System.out.println("\t[cdArtist ->" + cdArtist + "]");
      		String cdTitle = rs.getString("cdTitle");
      		System.out.println("\t[cdTitle ->" + cdTitle + "]\n");
   		}
   		con.close();
   	}
}
```

Ich bekomme die Fehlermeldung, dass der Treiber nicht gefunden wird. Die Classpath-Variable habe ich gesetzt.


----------



## The_S (30. Okt 2007)

Versuchs mal mit nem kleinen "jdbc", also



```
Class.forName( "org.hsqldb.jdbcDriver" );
```


----------



## Alex_winf01 (30. Okt 2007)

Danke schon mal für Deine Antwort.


```
Class.forName("org.hsqldb.jdbcDriver");
```


```
jdbc
```
 ist doch klein??? ???:L  Oder verkalk ich so langsam?


----------



## The_S (30. Okt 2007)

hm, ich hätte schwören können, dass es vorhin noch groß war. Oder ich bin in der zeile verrutscht und habs mit deinem log vertauscht.

Poste doch mal die genaue Fehlermeldung mit Zeilenangabe.

und mach ma


```
DriverManager.getConnection("jdbc:hsqldb:file:C:/tmp/musicShop","sa","");
```


----------



## tuxedo (30. Okt 2007)

P.S. Die eine oder andere Leerzeile im Code trägt zur Lesbarkeit ungemein bei.

- Alex


----------



## Alex_winf01 (30. Okt 2007)

Also:

Ich bekomme die Fehlermeldung 

"Exception in thread "main" java.lang.ClassNotFound Exception: org.hsqldb.jdbc in Zeile 12.

In dieser Zeile sollte er den Treiber geladen haben.


----------



## The_S (30. Okt 2007)

dann ist die hsqldb.jar ganz eindeutig NICHT im Classpath. Andere Erklärung gibt es nicht!


----------



## Alex_winf01 (31. Okt 2007)

Also:

Ich bin wie folgt vorgegangen:

1) HSQLDB downloaden
2) ZIP-Datei extrahieren
3) unter 





> c:\jsdk1.4.2_07\bin


 liegt sowohl die hsqlb.jar-Datei als auch der Ordner org. In der Umgebungsvariable "Path" habe ich folgendes eingestellt: 





> c:\jsdk1.4.2_07\bin\hsqldb.jar;c:\jsdk1.4.2_07\bin\org;


----------



## The_S (31. Okt 2007)

1.) Man fügt keine neuen Libs in das Java-Installationsverzeichnis ein
2.) Schon gar nicht ins bin Verzeichnis, wenn dann ins lib Verzeichnis
3.) Führst du die Anwendung über Eclipse oder einer anderen IDE aus? Falls ja musst du natürlich die Jar dort in dem Build-Path bekannt geben


----------



## Alex_winf01 (31. Okt 2007)

Es funzt auch nicht, wenn ich es in ein anderes Verzeichnis einbinde, da die Vorgehensweise dem entspricht, was ich beschrieben habe. Hab deswegen Extra ein Verzeichnis angelegt unter





> c:\Programme\HSQLDB


 und dort habe ich das jar-File und den Ordner org hingelegt. Danach die Path dementsprechend eingestellt und funzt auch nicht. Ich benutze den Editor "JOE". Wo muss ich dort das jar-File einbinden?


----------



## The_S (31. Okt 2007)

Punkte 1 und 2 waren ja eher allgemeine Richtlinien und nicht zu Behebung der Fehler. Sorry, mit JOE habe ich überhaupt keine Erfahrung, da weiß ich nicht, wo und wie man Jars einbindet.


----------



## Guest (31. Okt 2007)

Wie muss ich das denn in Eclipse machen?


----------



## The_S (31. Okt 2007)

rechte maustaste auf das Projekt, Properties, Java Build-Path, Libraries, add External Jars


----------



## Alex_winf01 (31. Okt 2007)

Und wie bindet man das in den JCreator ein?


----------



## The_S (31. Okt 2007)

Kannst du dich bald mal für eine IDE entscheiden? Für den JCreator weiß ich das ebenfalls nicht (bin nur Eclipse-User).


----------



## Alex_winf01 (31. Okt 2007)

Danke für Deine Geduld. Hab es jetzt mit dem JCreator hinbekommen. Vielen Vielen Dank.


----------



## The_S (1. Nov 2007)

Und wie gehts? So für die Nachwelt ...


----------



## Alex_winf01 (1. Nov 2007)

Ich schau im Büro am Montag nach (hab heute Feiertag) und poste dann hier.   
Aber man muss ähnlich wie in eclipse das jar-File einbinden. Geht so ähnlich, deswegen bin ich drauf gekommen.


----------



## Alex_winf01 (5. Nov 2007)

Wie versprochen:

Projekt markieren, Menüpunkt Project -> ProjectSettings -> Punkt Requiered Libraries -> Treiber einbinden.

So funzt es.


----------

