Frage zu Ausführungsmöglichkeiten von SQL Befehlen

DennisXX

Bekanntes Mitglied
Hi Folks !

Ich habe nochmal eine Frage an euch. Gehen wir mal davon aus, dass ich eine kleine Datenbank mit wenigen Tabellen habe.

Außerdem habe ich eine kleine Benutzeroberfläche. Über diese Benutzeroberfläche möchte ich ausschließlich mit meiner Datenbank kommunizieren. Ich möchte also direkt über die Oberfläche komplexere SQL Befehle wie z.B. SELECT Statements mit einem oder auch mehreren INNER JOIN, LEFT OUTER JOIN und RIGHT OUTER JOIN, evtl. auch UPDATE, ALTER und DELETE Statements. Diese Statements können eine oder mehrere Tabellen und auch Subselects beinhalten. Also eben ein Großteil des kompletten SQL Programms !

Ich würde gerne, dass der Benutzer diese Befehle innerhalb der Oberfläche in ein Textfeld eingibt und diese dort dauerhaft persistent gespeichert und auch nach Bedarf ausgeführt werden können.

Kann man diese SQL Befehle dort einfach eingeben und als String speichern (z.B. selbst in einer Datenbanktabelle oder in einem String Array) und sie ggf. bei Bedarf, eben wenn der Benutzer konkret daten aus der datenbank bekommen möchte, diesen SQL String an die Codefraqmente meines Programms weiterleiten als kompletten String weiterreichen, und das diese Codefraqmente dann die Verbindung zur Datenbank aufbauen und dabei diesen String dann als SQL Befehl interpretieren bzw. übersetzen? In Java ist das glaube ich die Klasse SQL und dann eben die entsprechenden Methoden.

Ich hoffe, es ist halbwegs verständlich, worauf ich hinausmöchte. Funktioniert so etwas, ganz egal, wie komplex die SQL Befehle eigentlich sind?

Danek schön für die Hilfestellungen !!

Greetz
Dennis
 

Evil-Devil

Top Contributor
Klar funktioniert das. Eine SQL Anweisung ist ein Textstring. Von daher kannst du den auch in der Datenbank speichern.
Allerdings macht es wenig Sinn nicht funktionierende Abfragen zu speichern. Ich würde es erst erlauben die Abfrage zu speichern, wenn sie denn auch funktioniert. Wobei du für sowas priviligierte Benutzer anlegen solltest. Nicht das dir einer der Benutzer ein "Drop Table" oder "Drop Database" ausführt ;)
 

DennisXX

Bekanntes Mitglied
Danke für die Antwort !

Was wäre denn eine gute und praxistaugliche Möglichkeit diese SQL Befehle zu speichern? Etwa in einer Datenbanktabelle als Textstrings oder in einer separaten Datei (z.B. SQL_Statements.txt oder so) und dann von dort ein und auszulesen?

Greetz
Dennis
 

DennisXX

Bekanntes Mitglied
Auf keinen Fall da, wo der User es ändern kann.

Naja man könnte ja evtl. Txt-Dokumente per Passwort oder so in Windows schützen, oder alternativ wirklich eine Datenbanktabelle in einer separarten Datenbank. Aufgrund meines bisherigen geringer Praxisbezugs weiß ich nicht, was da die beste Lösung sein kann.

Greetz
Dennis
 

turtle

Top Contributor
Ich bin ja der Meinung, dass das ganze wenig Sinn macht:shock:

Wenn ein User selbst geschriebene SQL-Kommandos schreiben kann, sind da wohl auch Kommandos bei, die die DB verändern wollen. Dies möchtest Du wahrscheinlich NICHT zulasen, weswegen eine Menge weiterer Probleme gelöst werden müssten. Mit welchen Rechten laufen die SQL-Befehle? Können Befehle wiederholt werden? Gibt es Transaktionen?

Da ist die Frage, wo und wie das SQL aufbewahrt wird, nicht sehr interessant. Da es meines Wissens auch keine Test-DB im Netz "zum Spielen" gibt, frage ich mich, warum das so ist. Anscheinend sind die Probleme dabei dich grösser als Du Dir gerade vorstellst.

Ich bin mir auch nicht sicher, ob ich verstanden habe, wofür das Ganze sein soll. "Nur", damit Du einem SQL-Anfänger die Mühe abnimmst, selber eine DB aufzusetzen? Ausserdem bin ich der Meinung, dass dies ebenfalls eine wichtige Lernerfahrung ist. Und wenn diese DB erstmal geschrottet wurde;)

Als ich rate davon ab:noe:

/Edit: Lese gerade, dass Du das vielleicht nur für Dich benötigst. Das sollte jeder bessere SQL-Client bereits können, das bereits abgeschickte SQL-Kommandos erneut ausgeführt werden können.
 
Zuletzt bearbeitet:

DennisXX

Bekanntes Mitglied
Hi Turtle !

Wenn ein User selbst geschriebene SQL-Kommandos schreiben kann, sind da wohl auch Kommandos bei, die die DB verändern wollen. Dies möchtest Du wahrscheinlich NICHT zulasen, weswegen eine Menge weiterer Probleme gelöst werden müssten. Mit welchen Rechten laufen die SQL-Befehle? Können Befehle wiederholt werden? Gibt es Transaktionen?

Die SQL Befehle sind derzeit nicht mit irgendwelchen Restriktionen versehen, können im Prinzip so oft wie möglich wiederholt werden (klar irgendwann müssen qualifizierte Fehlermeldungen ausgegeben werden, z.B. wenn Befehle versucht werden doppelt abzusetzen) und mit Transaktionenn möchte ich gerne zukünftig arbeiten, derzeit ist das aber noch nicht realisiert.

Jeder von meinen Benutzer kann da ausführen was er möchte. Sie sind derzeit in Textdokumenten zwischengespeichert und werden per Paste & Copy auf einer Datenbank ausgeführt.

Die Anwendungen soll aber nur 3 Benutzern insgesamt zur Verfügung stehen, die dazu auch noch sehr fit in den entsprechenden Abläufen sind und sich schon jahrelang mit dieser Thematik beschäftigen. Durch eine neugestaltete Software soll eben vieles verbessert werden und die Benutzer sollen effizienter arbeiten.

Da es meines Wissens auch keine Test-DB im Netz "zum Spielen" gibt, frage ich mich, warum das so ist. Anscheinend sind die Probleme dabei dich grösser als Du Dir gerade vorstellst.

Ich versteh ehrlich gesgat nicht, was Du hiermit meinst?

Ich bin mir auch nicht sicher, ob ich verstanden habe, wofür das Ganze sein soll. "Nur", damit Du einem SQL-Anfänger die Mühe abnimmst, selber eine DB aufzusetzen? Ausserdem bin ich der Meinung, dass dies ebenfalls eine wichtige Lernerfahrung ist.

Nein das hast Du falsch verstanden. Hier wird nichts neu aufgesetzt, sondern in einer bestehenden Datenbank immer wieder vieles auf die gleiche Art und Weise "abgearbeitet". Diese Schritte (die kann ich hier nicht alle beschreiben, das würde den Rahmen sprengen) sollen mithilfe einer vernünftigen Software schneller realisiert werden können, indem man nicht mehr mit Paste Copy SQl Befehle absetzt oder sogar noch direkt auf der Datenbank arbeitet, sondern das alles schön über eine gute Benutzeroberfläche zu steuern.

Greetz
Dennis
 

turtle

Top Contributor
Das hört sich alles SEHR merkwürdig an.

Ein Unternehmen entwickelt einen eigenen SQL-Client, setzt aber mehrfach bewährte SW nicht ein?

Durch eine neugestaltete Software soll eben vieles verbessert werden und die Benutzer sollen effizienter arbeiten.

Was soll denn da verbessert werden?
 
Zuletzt bearbeitet:

DennisXX

Bekanntes Mitglied
Gewisse Arbeitsabläufe sollen darauf schneller umgesetzt werden können. Tut mir leid, aber ich kann Dir das nicht näher erklären, da das für Außenstehende recht sbsrakt ist, was hier in meinem Unternehmen umgesetzt wird.

Greetz
Dennis
 

turtle

Top Contributor
Hört sich so an, als ob eine einfach Swing-Applikation reicht, in der man einen SQL-Befehl eingeben kann und über einen Button ausführen lassen. Über einen anderen Button kann die bisherige SQL-Historie gespeichert werden. Damit soll wahrscheinlich die Eingabe von SQL-Befehlen verkürzt werden, Stichwort Autocompletion.

Warscheinlich sollte die Ausgabe der DB in einer Textarea angezeigt werden können. Sieht also in Total nach drei Controls aus.

Scheint, wenn's das bleibt, nicht allzu schwierig zu sein, oder?
 
Zuletzt bearbeitet:

DennisXX

Bekanntes Mitglied
Wenn man die entsprechend benötigten Technologien beherrscht, dann gebe ich Dir recht, das Projekt ist eigentlich noch recht überschaubar.

Greetz
Dennis
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Frage zu Bundesliga-DB Datenbankprogrammierung 1
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
M Frage zu JSON Datenbankprogrammierung 16
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
P Frage zu Connection.close() Datenbankprogrammierung 4
R MySQL Frage zum Anlegen von Artikeln inkl. Verbindungen Datenbankprogrammierung 0
M Grundlegende Klassen-Design Frage Datenbankprogrammierung 0
P MySQL Frage zur Einbindung in ein Java Projekt Datenbankprogrammierung 2
I Frage zu Datenmodellierung Datenbankprogrammierung 3
J Normalisierung - Allgemeine Frage zur 3. Normalform (Eventuelle Abhängigkeit) Datenbankprogrammierung 4
F Normalisierung Datenbank Frage Datenbankprogrammierung 5
J Frage zu ResultSet Datenbankprogrammierung 3
W Frage zur Datenbankwahl bei Umstieg auf Java Datenbankprogrammierung 7
D Frage zu DISTINCT in SQL Datenbankprogrammierung 5
K Frage zur Datenprotokollierung bei DML Anweisungen Datenbankprogrammierung 3
K Frage zu SQL Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
K Frage zu Datenbankmodellierung Datenbankprogrammierung 15
D Generelle Frage zum Umgang mit Datensätzen Datenbankprogrammierung 5
L Frage zu UpdateQuery Datenbankprogrammierung 12
8 MySQL Kurze Frage zur Sicherheit Datenbankprogrammierung 9
D Frage zu INSERTS über mehrere Datenbanktabellen Datenbankprogrammierung 3
D Frage zu SQL Syntax Datenbankprogrammierung 17
D Frage zu potenziellen Leerzeichen in einer Datenbank Datenbankprogrammierung 5
X Connection schließen oder speichern? Performance Frage Datenbankprogrammierung 7
J mal wieder eine Frage zu parallelen Transaktionen.. Datenbankprogrammierung 2
V Frage zu Hibernate-Mapping Datenbankprogrammierung 11
N Allg. Frage zur Datenbankverbindung Datenbankprogrammierung 2
E einfache Frage bei DB-Zugriff Datenbankprogrammierung 11
S MySQL Frage zu LeftJoin Abfrage Datenbankprogrammierung 2
O eigentlich simple SQL Frage Datenbankprogrammierung 2
M Frage zu folgender Query in EJB-QL Datenbankprogrammierung 4
H JBoss: Frage zur Datasource in der ...-ds.xml Datenbankprogrammierung 4
F Frage zu Prepared Statement Datenbankprogrammierung 2
R hibernate Frage zu configFile-Pfad und Groß/Kleinschreibung von Postgres-Tabellen Datenbankprogrammierung 8
U Frage zum Erfassen von hinzufügten und entfernten Objekten Datenbankprogrammierung 9
M prinzipielle Frage zu Datenbanken und jars ... Datenbankprogrammierung 2
S Hibernate - spezielle Frage, n zu n Beziehung Datenbankprogrammierung 11
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
J Frage zu Synchronisation bei parallelem Zugriff, speziell mit JPA Datenbankprogrammierung 2
F EclipseLink persistence.xml Frage Datenbankprogrammierung 11
N Frage zur Sicherheit von Konfigurationsdatei Datenbankprogrammierung 4
H performance frage Datenbankprogrammierung 9
G Frage zum Insert-Statement Datenbankprogrammierung 2
Antoras Design-Frage: Datenzuordnung zu verschiedenen Accounts Datenbankprogrammierung 2
T HSQL: verständnis Frage Datenbankprogrammierung 2
T Java JPA Frage bzgl. DISTINCT Datenbankprogrammierung 2
G Frage zu connection? Datenbankprogrammierung 9
A Frage zu SQL-Abfrage Datenbankprogrammierung 2
G Frage zu SQL "WHERE IN (1, 2, 3. , N)" Datenbankprogrammierung 8
G Allgemeine Frage zu Datenbanklimits Datenbankprogrammierung 27
G allgemeine JDBC-Connection Frage Datenbankprogrammierung 2
G Frage zu Hibernate und M:N Beziehung Datenbankprogrammierung 9
K HQL Frage Datenbankprogrammierung 10
D kurze Frage zu einem Query Datenbankprogrammierung 6
B Hibernate mit MySql - Verständniss Frage Datenbankprogrammierung 8
N Kleine Frage zu Connection Pooling mit DataSource Datenbankprogrammierung 2
T Update-Frage Datenbankprogrammierung 11
E SQL-Frage (Löschen aller Datensätze) Datenbankprogrammierung 9
P Frage zu Performancetest einer Datenbank Datenbankprogrammierung 3
W Frage zum Umgang mit DB-Daten Datenbankprogrammierung 2
E Nochmal eine Datenbankabfrage Frage :-o (JOIN oder so) Datenbankprogrammierung 4
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
L frage zu mySQL Datenbankprogrammierung 4
C Mal ne Frage an die Experten Datenbankprogrammierung 4
G Frage zum Datenbankdesign Datenbankprogrammierung 5
J DB Verbindung Design Frage Datenbankprogrammierung 5
M Datenbankanbindung in Java : Newbie-Frage Datenbankprogrammierung 2
U Grundsätzliche Frage Datenbankprogrammierung 4
S Frage zu INSERT Datenbankprogrammierung 2
X Wieder mal ne Frage ... Datenbankprogrammierung 15

Ähnliche Java Themen

Neue Themen


Oben