JDBC-HSQLDB
HdqlDB

Die HsqlDB ist eine frei verfügbare Datenbank, die auf puren Java-Code basiert.
In den unteren Beispielen wird die Datenbank nur im Hauptspeicher erstellt.
Nach einem Shutdown werden ALLE SQL-Befehle in der Datei "hsqldb_bsp.script" eingetragen.
Deshalb gibt es in der DBS-Klasse mehrere Methoden:
. public void openDbs() {
. public void setDbs(String databaseFile) {
. public DataTable selectDBS(String sql) {
. public void changeDBS(String sql) {
. public void shutdownDBS() {
Reihenfolge:
1) setDbs inklusive openDbs
2) selDbs ( holt Daten, unkritsch)
3) changeDbs (nun werden Daten geändert, aber noch nicht gespeichert!)
4) Nach einer Reihe von changeDbs-Befehlen MÜSSEN die Methoden shutdown und openDbs aufgerufen werden

Benötigt wird nur die Datei hsqldb.jar.

Einstieg:
neues Projekt (Eclipse oder Netbeans)
Link zur jar-datei
Einfügen der Datei Hsql_Bsp1.java
Übersetzen
In den oberen Editor die textdatei hsqldb_mitarbeiter_abteilung.txt einfügen.

Quellcode Hsql_Bsp1.java
SQL-Quellcode: hsqldb_mitarbeiter_abteilung.txt

Einstieg mit der fertigen jar-Datei:
Hsql_Bsp1.zip
Hsql_Bsp2.zip
Hsql_Bsp3.zip




Das Beispiel zeigt die Anbindung an die Datenbank HsqlDB mit Java
Eigenschaften:
Der Resultset wird in ein DataTable à la C# umgewandelt.
Danach werden die Daten in zwei Klassen ModelAbteilung, ModelMitarbeiter gekapselt.
Eine JTable-Komponente kapselt komplett die GUI mit einem Navigator-Bar.
Export nach Excel eingebaut.
Eine echte DatenbankConsole ist eingebaut.
Anzeige der Tabellen und den jeweiligen Spalten.



Neue Beispiele

Beispiel Link
Einfaches Beispiel mit der Ausgabe in einem Editor.

Hsql_Bsp1.zip

Quellcode:
Hsql_Bsp1.java
Bilder:
firebird_bsp1.png
Datenbank mit Abteilung und Mitarbeiter
Der Resultset wird in ein DataTable à la C# umgewandelt.
Eine JTable-Komponente kapselt komplett die GUI mit einem Navigator-Bar.
Export nach Excel eingebaut.
Eine echte DatenbankConsole ist eingebaut.
Hsql_Bsp2.zip

Bilder:
firebird_bsp2.png
firebird_bsp2a.png
firebird_bsp2b.png
firebird_bsp2c.png
firebird_bsp2d.png
Datenbank mit Abteilung und Mitarbeiter
Der Resultset wird in ein DataTable à la C# umgewandelt.
Danach werden die Daten in zwei Klassen ModelAbteilung, ModelMitarbeiter gekapselt.
Eine JTable-Komponente kapselt komplett die GUI mit einem Navigator-Bar.
Export nach Excel eingebaut.
Eine echte DatenbankConsole ist eingebaut.
Hsql_Bsp3.zip

Bilder (identisch mit Variante 2):
firebird_bsp2.png
firebird_bsp2a.png
firebird_bsp2b.png
firebird_bsp2c.png
firebird_bsp2d.png




Vorlesungsbeispiele

Tabellenbeispiele

jtable.zip




Fragen / Probleme

Stichwort Frage Question Antwort / Answer
Sequence Wie bekomme ich eine Sequencenummer ? How I get a sequencenumber? 1) create sequence "seqname"
2) create a table sequenz (pindex as integer)
3) insert ONE tupel pindex=1
4) SELECT NEXT VALUE FOR "+seqname+" FROM Sequenz;
here you see, why you need a separat table
5) get the number from the returnvalues

Better, if you convert the returnvalues to the class datatable à la C#

Quellcode: sequence.txt
getTables
Wie bekomme ich die Tabellen? How I get the Entities/Tables? tables:
String[] TABLE_TYPES = {"TABLE"}
DatabaseMetaData dbmd = conn.getMetaData();
rs = dbmd.getTables(null, null, null, TABLE_TYPES);
while (rs.next()) {
tables.add( rs.getString(TABLE_NAME) );
}

Quellcode: tables_columns.txt
getColumns Wie bekomme ich die Spalten einer Tabelle? How I get the columns of a table? Columns:
SELECT column_name, Data_type FROM INFORMATION_SCHEMA.COLUMNS where table_name='"+ tablename+"' ";

Quellcode: tables_columns.txt
dbsConsole Ich benötige eine DBS-Cosnole in meinem Programm I need a DBSComnsole in my program. in my JDialog "FDBSConsole.java" you get an two list for the tables and columns and an editor for the sql-input, and a jtable for the results.

Quellcode: FDBSConsole.java

see samples 3: Hsql_Bsp3.zip