Embedded Derby Datenbank

damtre

Aktives Mitglied
Hey!

Ich versuche gerade die Derby Datenbank im Embedded Modus unter Eclipse zum laufen zu bekommen. Jedoch stoße ich sobald ich mit einem SELECT Statement auf die Tabelle zugreifen will auf eine Exception die ich einfach nicht loswerde.
Es handelt sich um die Exception Table/View 'Tabellenname' does not exist.

Infos zu meiner aktuellen Konfiguration:
Die Derby-Jar-Datei ist dem Projekt hinzugefügt und im JAVA buildpath eingepflegt.
Die Datenbank ist am laufen und ich kann ein SELECT Statement problemlos laufen lassen wenn ich es aus einem SQL-File direkt ausführe.
Das gleiche Statement aus JAVA heraus geht wiederrum nicht und es wird die o.g. Exception geworfen.

Hier mal mein Code:
Java:
private static final String driver = "org.apache.derby.jdbc.EmbeddedDriver";
private static final String url = "jdbc:derby:testDB;create=true";

...
public void actionPerformed(ActionEvent e) {
				Connection con = null;
				Statement st;
				ResultSet rs;

				try {
					Class.forName(driver);
					con = DriverManager.getConnection(url);

					// Use the database connection somehow.
					st = con.createStatement();
					rs = st.executeQuery("SELECT * FROM PUNKTELISTE"));
					if (rs == null) {
						System.out.println("LEER");
					} else {

						while (rs.next()) {
							System.out.println(rs.getObject(1) + " "
									+ rs.getObject(2));
						}
					}
				} catch (SQLException se) {
					se.printStackTrace();
				} catch (ClassNotFoundException ew) {
					System.out.println("JDBC Driver " + driver
							+ " not found in CLASSPATH");
				} finally {
					if (con != null) {
						try {
							con.close();
						} catch (SQLException se) {
							se.printStackTrace();
						}
					}
				}
			}
		});

Die Exception hier nochmal:

Code:
Caused by: java.sql.SQLException: Table/View 'PUNKTELISTE' does not exist.
	at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
	at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
	... 45 more
Caused by: ERROR 42X05: Table/View 'PUNKTELISTE' does not exist.
	at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
	at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
	at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
	at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
	at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
	at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
	at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
	at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source)
	at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
	at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)
	... 39 more


Ich habe auch schon ein
Java:
rs = st.executeQuery("SELECT * FROM APP.PUNKTELISTE"));
versucht, da APP ja das standard Schema ist, das verwendet wird, aber das bringt auch nichts.

Hoffe jemand hatte schon mal ein ähnliches Problem. Mir ist einfach nicht klar was das Problem ist...
Danke
 

tfa

Top Contributor
Die Datenbank ist am laufen und ich kann ein SELECT Statement problemlos laufen lassen wenn ich es aus einem SQL-File direkt ausführe.
Was bedeutet das? Du verwendest Derby im embedded-Modus. Was heißt, du führst "ein SQL-File direkt aus"? Läuft die DB doch im Server-Modus? Als embedded ist die Datenbank ja zunächst einmal leer. Da funktioniert noch kein select.
 

damtre

Aktives Mitglied
Mit embedded meine ich, dass ich meine Datenbank so verwenden will, dass diese Standalone in meiner Anwendung in Zukunft, wenn ich sie als JAR verpackt habe, läuft, ohne dass der User extra ne Datenbank zu installieren hat.

Zum SQL-File:
Ich erzeuge mir eine Datenbank, ganz normal über das Database Development Plugin, dass ich mir zuvor in Eclipse aus dem Indigo Repository heruas installiert habe. Dabei gebe ich auch an, dass die erzeugte Datenbank den Embedded Derby JDBC Driver verwenden soll.

Nach der Erzeugung der DB steht diese ab sofort in meinem Workspace im aktuellen Verzeichnis meines Programms zur Verfügung.
Nun erzeugte ich mir ein SQL-File (Rechtsklick im Package Explorer -> New -> Other -> SQL Development -> SQL File)
In diese SQL File kommen nun meine CREATE TABLE, INSERT INTO und ein SELECT Statement.
Nun kann ich mit einem rechtsklick auf das SQL File auf Execute SQL File klicken. Die Datei wird abgearbeitet und die Tabelle wird in meine Datenbank geschrieben, die Daten werden in die Tabelle eingefügt und das Select wird ausgeführt.

Also ist meine Datenbank nun mit einer Tabelle bestückt und beinhaltet auch Daten.
Nun will ich aus meinem Programm wie oben beschrieben, einfach nur noch ein einfaches Select Statement auf diese gerade angelegte Datenbank ausführen, aber stattdessen kommt der o.g. Fehler.

Ich hoffe, meine Ausführungen sind nun besser nachzuvollziehen.

Grüße
 

turtle

Top Contributor
Ich würde den Versuch eine DB zu erzeugen, mal weglassen
Code:
url = "jdbc:derby:testDB";

Weiterhin kannst Du die Zeile
Code:
 Class.forName(driver);
ebenfalls weglassen.

Und dann prüfe mal, ob die DB geöffnet werden kann. Ich vermute, dass eine DB jedesmal neu erstellt wurde, wo auch immer, und darin natürlich noch keine Tabellen angelegt wurden. Mit dem Weglassen von "create=true" bist Du dir dann sicher, das die vorbereitete DB geöffnet wird.
 

damtre

Aktives Mitglied
Hey,

danke für die Antwort, allerdings brachte das nicht den erhofften erfolg.
Mittlerweile habe ich es geschafft Zugriff auf die Datenbanktabelle zu erhalten.
Ich habe alles gelassen wie es bisher war mit dem Unterschied, dass ich meine Tabelle in der Datenbank nicht mit Hilfe meines SQL-Files erzeuge sondern das Statement direkt aus meinem Java Programm heraus aufrufe.
Und siehe da schon hatte ich Zugriff auf meine Embedded DB.

Ich war bisher nur die Client-Server DB gewöhnt und dachte, dass es mit der Embedded Version genauso geht und ich nur die dbURL anpassen muss damit auch der Embedded JDBC Treiber verwendet wird, aber dem war nicht so.
Die Datenbank wird nun wie gehabt aus meinem JAVA-Programm erstellt:
Java:
private static final String url = "jdbc:derby:TestDB;create=true";

und die Tabelle einfach mit einem Statement hinzugefügt:

Java:
Statement st = null;
ResultSet rs = null;

try {
	Class.forName(driver);
	con = DriverManager.getConnection(url);
	st = con.createStatement();
	st.execute("CREATE TABLE PUNKTELISTE (NAME VARCHAR(50), Punkte INTEGER)");
st.executeUpdate("INSERT INTO punkteliste (Name, Punkte) Values ('Hugo', 1234)");
	rs = st.executeQuery("SELECT * FROM PUNKTELISTE");
...
}catch(...){
...
}

Nun wird beim Select auch endlich der Wert angezeigt...
Also so viel dazu. Man lernt nie aus. ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
LimDul H2 Embedded DB und Gigabytes an Daten Datenbankprogrammierung 0
thet1983 Derby/JavaDB Embedded Driver Datenbankprogrammierung 7
L H2 Embedded H2 Datenbank über Netzwerk zugreifen? Datenbankprogrammierung 0
J Hibernate + HSQL embedded Datenbankprogrammierung 2
H H2 Datenbank Embedded? Datenbankprogrammierung 8
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
E embedded DB Datenbankprogrammierung 8
N suche embedded key-value-datenkank Datenbankprogrammierung 2
P Embedded Database und große Datenmengen Datenbankprogrammierung 23
C Embedded DB für Java Datenbankprogrammierung 26
F H2 embedded Datenbankprogrammierung 4
E H2 Verständnisfrage "Embedded"?? Datenbankprogrammierung 6
G Embedded Datenbank Datenbankprogrammierung 4
S Embedded DB, die aus mehreren JVMs gestartet werden kann? Datenbankprogrammierung 10
K Java DB Embedded DB Datenbankprogrammierung 8
M Embedded Datenbank? Datenbankprogrammierung 2
D Firebird Embedded dlls Datenbankprogrammierung 3
G embedded H2; wie tables anlegen? Datenbankprogrammierung 3
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
F Derby Datenbankprogrammierung 5
T importierte Derby DB währen der Laufzeit einlesen Datenbankprogrammierung 2
L Derby/JavaFX Fehlermeldung Datenbankprogrammierung 3
R findet Derby.DB nicht !? Datenbankprogrammierung 5
K Eclipse Apache Derby Treiber Problem Datenbankprogrammierung 4
J Derby/JavaDB Datenbankanbindung Eclipse und Derby Datenbankprogrammierung 7
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
T Datenbankfeld in Derby 255 Zeichen Datenbankprogrammierung 3
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
C Derby auf Server Datenbankprogrammierung 6
R derby : in squirrel url zu db von tomcat Datenbankprogrammierung 4
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
S Dringend Netbeans Derby DB random() function Datenbankprogrammierung 6
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
B Derby/JavaDB Einrichten der Derby DB / JAVA DB Datenbankprogrammierung 2
A Eclipse + Derby + Delete Row Datenbankprogrammierung 3
D Derby Datenbank bei Export zu JAR-Datei nicht möglich Datenbankprogrammierung 8
reibi Derby/JavaDB Derby DB löschen Datenbankprogrammierung 5
L Derby Datenbank speichert nicht Datenbankprogrammierung 9
N Query für Derby DB mit Enterbrise Bean Datenbankprogrammierung 4
S Derby/JavaDB Derby zu MySQL Datenbankprogrammierung 6
H Derby/JavaDB Eine verschlüsselte Derby-Datenbank wieder entschlüsseln Datenbankprogrammierung 4
G Derby/H2 Welches u. Wie installieren/verwenden? Datenbankprogrammierung 10
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
zilti Derby/JavaDB EclipseLink und Derby: "Abschneidefehler" bei @Lob Datenbankprogrammierung 2
B Derby Databankabfrage liefert Ergebnisse nicht korrekt Datenbankprogrammierung 2
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
H Flat Files in Derby importieren Datenbankprogrammierung 3
reibi Derby/JavaDB Derby russty manager deaktivieren Datenbankprogrammierung 3
L Derby Dezimal-Spalte die Größe ändern Datenbankprogrammierung 2
D PostgreSQL vs Firebird vs Derby Datenbankprogrammierung 12
P Zugreifen auf Derby Datenbank mit java (ÜBERARBEITET) Datenbankprogrammierung 2
R Lokale Derby in einer JPA-Anwendung Datenbankprogrammierung 3
S Derby ein zweites mal als Read-only öffnen Datenbankprogrammierung 9
M Derby insert, ID auslesen Datenbankprogrammierung 3
J Derby Datenbankprogrammierung 7
S Derby Datenbank "offline" und "online" Datenbankprogrammierung 5
L Apache Derby Management-Tool Datenbankprogrammierung 3
A JavaDB(Derby) als ODBC-Datenquelle eintragen Datenbankprogrammierung 4
T Derby und Foreign Keys Datenbankprogrammierung 4
I JAVADB (Derby) OneToMany Datenbankprogrammierung 2
T Zugriff auf Derby-Datenbank will einfach nicht klappen Datenbankprogrammierung 22
M Gelöst: JavaDB - Derby Inhalt in Jar Datei speichern Datenbankprogrammierung 5
O Derby/JavaDB anwenden von Regular Expressions Datenbankprogrammierung 2
O Derby Performance Probleme? Datenbankprogrammierung 4
H Derby in Java 6 direkt integriert? Wie nutzt man das? Datenbankprogrammierung 3
Z derby abfrage von einem Timestamp Datenbankprogrammierung 2
GilbertGrape Allgemeines zu Derby Datenbankprogrammierung 7
M JavaDB/Derby: Tabellen erstellen Datenbankprogrammierung 8
G Derby Anleitung? Datenbankprogrammierung 1
H Migration von MySQL auf Derby Datenbankprogrammierung 2
B Java Derby Datenbank mit CLOB & BLOB Datenbankprogrammierung 5
vogella Java DB (Derby) Size Datenbankprogrammierung 12
J Derby Cursor Problem Datenbankprogrammierung 2
R Wie stabil ist Derby? Datenbankprogrammierung 2
P derby datenbank Datenbankprogrammierung 2
D Installation von Apache Derby in Eclipse Datenbankprogrammierung 1
P DERBY vs HSQLDB (Vor- Nachteile) Datenbankprogrammierung 3
B Cloudscape/Derby NetworkServer als JDBCRealm Datenbank Datenbankprogrammierung 2
P Apache DERBY - Datanbank erstellen Datenbankprogrammierung 2
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14

Ähnliche Java Themen

Neue Themen


Oben