HSQL-Tabelle erstellen (und andere Datenbanken)


images/download/thumbnails/44946826/arrow_up-version-1-modificationdate-1583803684396-api-v2.png Einführung: Eine Beschreibung dieser Phase finden Sie im Abschnitt Phase 4 (Einführung).


images/download/thumbnails/44946826/image2020-3-16_17-3-10-version-1-modificationdate-1584331390774-api-v2.png

Für den Fall, dass Phase 4 aktiviert ist, kennen Sie bereits die Möglichkeit sich für bestehende Datenbank-Tabellen automatisch einen Datenbank-Knoten mit Feldern in der Zielstruktur von Lobster_data erstellen zu lassen (über das Kontextmenü der Zielstruktur).

Ist Phase 4 aktiviert, haben Sie ebenfalls die Möglichkeit die andere Richtung zu gehen. D. h. Sie können in der Zielstruktur einen Knoten mit Feldern anlegen und sich dann automatisch in einer in Lobster_data integrierten HSQL-Datenbank eine Tabelle erstellen lassen (mit Feldern, die den Feldern in Ihrem Zielstrukturknoten entsprechen). Dies ist eine bequeme und intuitive Art sich für Ihr Profil eine Datenbank-Struktur im Hintergrund aufzubauen. Zudem müssen Sie sich keinerlei Gedanken über Zugriffsrechte oder die Beantragung benötigter Datenbank-Strukturen beim Datenbank-Administrator machen. Dieser bleibt dabei schlicht außen vor, da Sie ja nur Datenstrukturen innerhalb von Lobster_data verwenden, für die Sie bereits alle notwendigen Zugriffsrechte haben (wenn Sie diese haben).

Im Folgenden ist das Vorgehen zur Erstellung eines HSQL-Knotens (und damit einer HSQL-Tabelle) dargestellt.


Erstellen Sie in der Zielstruktur einen beliebigen neuen Knoten mit einer beliebigen Anzahl an Feldern.


images/download/attachments/44946826/715-version-2-modificationdate-1650355944805-api-v2.png


Wählen Sie in den Eigenschaften des Zielstrukturknotens Node den Datenbank-Alias hsql aus. Dieser ist in Lobster_data standardmäßig bereits vorhanden.


images/download/attachments/44946826/716-version-1-modificationdate-1650354443225-api-v2.png


Danach können Sie über das Kontextmenü des Knotens Node eine HSQL-Tabelle erzeugen lassen.


images/download/attachments/44946826/718-version-1-modificationdate-1650356288550-api-v2.png


Es öffnet sich ein weiterer Dialog. Drücken Sie hier (1) und (2). Danach wird (3) automatisch gefüllt. Mit (4) schließen Sie den Vorgang ab.


images/download/attachments/44946826/717-version-1-modificationdate-1650355752659-api-v2.png


Sie haben nun eine funktionsfähige HSQL-Tabelle angelegt und Ihr Knoten Node mit seinen Feldern ist mit dieser verbunden (über die Knoten- und Feld-Eigenschaften, so wie Sie das von "normalen" Datenbank-Knoten kennen).

Andere Datenbanktypen


Sie können statt der Lobster_data-internen HSQL-Datenbank auch andere Datenbanken für diesen Mechanismus benutzen. Verwenden Sie in der obigen Beschreibung schlicht statt hsql den Alias der gewünschten Datenbank.

Wie die Datenypen der Lobster_data-Felder für den jeweiligen Datentypen der gewählten Datenbank umgesetzt werden, siehe (3), können Sie über die Konfigurationsdatei ./etc/admin/datawizard/db_datatypes.properties steuern.


db_datatypes.propertie
# Avaiable types to define: (String, Integer, Double, Date, Boolean, TimeStamp, Float, BigDecimal, BigInteger, Blob)
# Holders which will be replaced:
# %n% for single values (length)
# %p% total number of digits
# %s% number of digits in the fractional part
#
# Composition:
# specific String of a databasedriver . datatype = String to use
#
# DB2 Datatypes
db2.String=VARCHAR(%n%)
db2.Integer=INTEGER
db2.Double=DOUBLE
db2.Date=DATE
db2.Boolean=SMALLINT
db2.TimeStamp=TIMESTAMP
db2.Float=REAL
db2.BigDecimal=DECIMAL(%p%,%s%)
db2.BigInteger=BIGINT
db2.Blob=BLOB
 
# MYSQL
mysql.String=VARCHAR(%n%)
mysql.Integer=INTEGER(%n%)
mysql.Double=DOUBLE(%p%,%s%)
mysql.Date=DATE
mysql.Boolean=SMALLINT(%n%)
mysql.TimeStamp=TIMESTAMP
mysql.Float=FLOAT(%p%,%s%)
mysql.BigDecimal=DECIMAL(%p%,%s%)
mysql.BigInteger=BIGINT(%n%)
mysql.Blob=BLOB
 
#Postgres
postgres.String=VARCHAR(%n%)
postgres.Integer=INTEGER
postgres.Double=DOUBLE PRECISION
postgres.Date=DATE
postgres.Boolean=BOOLEAN
postgres.TimeStamp=TIMESTAMP
postgres.Float=REAL
postgres.BigDecimal=NUMERIC(%p%,%s%)
postgres.BigInteger=BIGINT
postgres.Blob=BYTEA
 
# MariaDB
mariadb.String=VARCHAR(%n%)
mariadb.Integer=INTEGER(%n%)
mariadb.Double=DOUBLE(%p%,%s%)
mariadb.Date=DATE
mariadb.Boolean=SMALLINT(%n%)
mariadb.TimeStamp=TIMESTAMP
mariadb.Float=FLOAT(%p%,%s%)
mariadb.BigDecimal=DECIMAL(%p%,%s%)
mariadb.BigInteger=BIGINT(%n%)
mariadb.Blob=BLOB
 
#Oracle
oracle.String=VARCHAR2(%n% CHAR)
oracle.Integer=INTEGER
oracle.Double=DOUBLE PRECISION
oracle.Date=DATE
oracle.Boolean=SMALLINT
oracle.TimeStamp=TIMESTAMP
oracle.Float=FLOAT
oracle.BigDecimal=DECIMAL(%p%,%s%)
oracle.BigInteger=BIGINT
oracle.Blob=BLOB
 
#MSSql
sqlserver.String=VARCHAR(%n%)
sqlserver.Integer=INT
sqlserver.Double=FLOAT(53)
sqlserver.Date=DATE
sqlserver.Boolean=SMALLINT
sqlserver.TimeStamp=TIMESTAMP
sqlserver.Float=FLOAT(53)
sqlserver.BigDecimal=DECIMAL(%p%,%s%)
sqlserver.BigInteger=BIGINT
sqlserver.Blob=VARBINARY(MAX)