MySQL ResultSet als Stream weiter geben

Hallo, ich möchte über Java auf eine MySQL-Datenbank zugreifen und zwar von mehreren PCs aus, so dass ich einen Server benötige. Ich habe vor einigen Tagen erst angefangen mich mit Java-Serververbindungen (und Streams) zu beschäftigen.
Meine Frage ist, ob/wie es möglich ist, das ResultSet über den OutputStream weiter zu geben, OHNE alles in einen sehr langen String zu schreiben, was Anfangs meine Idee war.

Vielen Dank schonmal im Voraus! :)

Daniel
 

Joose

Top Contributor
Danke das du uns auch die Lösung die du gefunden hast verratest.
Damit jeder der ein ähnliches Problem hat es nicht nachlesen kann! ;-)
*ironie off*
 
Also eine Lösung habe ich eig. nicht direkt gefunden, sondern habe nach einigen Überlegungen festgestellt, dass es für mich besser ist, einen ganzen String zu übergeben.

Falls doch noch jemand eine Idee hat, wie man einen ResultSet übergeben kann über Streams, könnte ich doch nochmal schauen, ob es doch vorteilhafter wäre, die ResultSets zu übergeben
 

Joose

Top Contributor
Nein dein Fehler besteht schon darin die Daten aus der Datenbank direkt an den entsprechenden Client zu liefern!
Wandle die Daten aus dem ResultSet doch erstmal in Objekte um und verschicke diese dann. Der Vorteil ist diese Objekte können einfach per RMI (oder ähnlichen) zwischen Server und Client hin und geschickt werden. Außerdem kannst du diese Anwendung soweit erweitern das es dort die ganze Arbeit "passiert" und der Client nur noch zuständig für die Anzeige ist.
 

stg

Top Contributor
Mir erschließt sich schon nicht, wieso du nicht einfach direkt die Datenbank ansprichst. Wo diese steht, ist doch egal, du musst doch nur die Verbindungsparameter entsprechend anpassen.
 

Joose

Top Contributor
Wo diese steht, ist doch egal,

Im Anfangspost steht aber drinnen das er auf die Datenbank von mehreren PCs aus zugreifen will.
Wenn er nun direkt zugreifen würde würden sich die Benutzer gegenseitig behindern wenn Daten hinzugefügt, gelöscht oder geändert werden.

Außerdem sollte man nie direkten Zugriff auf die Datenbank erlauben!
 

stg

Top Contributor
Im Anfangspost steht aber drinnen das er auf die Datenbank von mehreren PCs aus zugreifen will.
Das sagt aber rein gar nichts aus und ist auch recht unerheblich. Woher die Anfragen kommen, ist der Datenbank herzlichst egal. Ob da nun 1,2 oder 1000 Maschinen anfragen senden, oder aber eine einzige dafür viel viel mehr, macht keinen wirklichen Unterschied.
Ich habe glaube ich sogar noch nie (außer mal zum Testen) Datenbank und Applikationen auf dem gleichen Server gehabt.

Wenn er nun direkt zugreifen würde würden sich die Benutzer gegenseitig behindern wenn Daten hinzugefügt, gelöscht oder geändert werden.

Ganz im Gegenteil. Genau für solche Aufgaben ist ein DBMS doch bestens geeignet und im Grunde ja auch (unter Anderem) genau dafür da, solche Aufgaben zu erledigen. Wenn er da nun noch selbst irgendwas dazwischenkaspert, so muss er sich um den ganzen Kram ja doch wieder in geeigneter Art und Weise selbst kümmern, was kaum Sinn der Sache sein sollte.

Außerdem sollte man nie direkten Zugriff auf die Datenbank erlauben!
Direkten Zugriff auf die Datenbank sollte natürlich nur vertrauenswürdigen Clients ermöglich werden. Wenn ich aber an einer öffentlichen Schnittstelle einfach nur SQL Anfragen entgegennehme, diese weiterleite und anschließend den response geeignet zurückgebe, dann macht das auch keinen Unterschied, als wenn die Anfrage direkt an die DB geschickt werden würde. Wenn man das umgehen will, dann muss schon einen geeigneten Webservice bereitstellen und darf nicht mit Client-seitigem SQL arbeiten, was der TE aber ja offenbar vorhat. (Jedenfalls klang es für mich so)
Solange wir aber nicht etwas genauer wissen, was genau der TE denn umzusetzen versucht, in welcher Umgebung das ganze passieren soll usw, bringt es aber auch nicht sonderlich viel, das jetzt großartig weiter auszudiskutieren.
 
Zuletzt bearbeitet:

Joose

Top Contributor
Direkten Zugriff auf die Datenbank sollte natürlich nur vertrauenswürdigen Clients ermöglich werden.

Aus meiner Sicht nur der Server mit der Serverapplikation ;-)

Wenn ich aber an einer öffentlichen Schnittstelle einfach nur SQL Anfragen entgegennehme, diese weiterleite und anschließend den response geeignet zurückgebe,

Was ist geeignet? Ein ResultSet wohl kaum, dann doch lieber entsprechende Objekte, welche die Daten kapseln.

dann macht das auch keinen Unterschied, als wenn die Anfrage direkt an die DB geschickt werden würde.

Doch! Kann der Client direkt mit der DB kommunizieren sind die DB Zugangsdaten auf jedem Client verfügbar.
Somit habe ich Zugangsdaten für die Datenbank und es wäre möglich alle Daten zu lesen.

Bei einer Serverapplikation kann habe ich zentral die Zugangsdaten hinterlegt und es reicht den Server entsprechend abzusichern (anstatt von X Clients). Außerdem kann der Server nicht erlaubte Anfragen direkt wieder filtern.

Wenn man das umgehen will, dann muss schon einen geeigneten Webservice bereitstellen und darf nicht mit Client-seitigem SQL arbeiten, was der TE aber ja offenbar vorhat. (Jedenfalls klang es für mich so)
Solange wir aber nicht etwas genauer wissen, was genau der TE denn umzusetzen versucht, in welcher Umgebung das ganze passieren soll usw, bringt es aber auch nicht sonderlich viel, das jetzt großartig weiter auszudiskutieren.

;-) stimmt ohne genauere Angaben des TE kann man nur raten was er vorhat.

Ich habe doch gar nicht diskutiert :p sondern einfach meine Meinung über das den direkten Zugriff auf eine DB und das auslieferen der ResultSet an Clients geäußert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S ResultSet als Parameter an andere Klasse übergeben Datenbankprogrammierung 3
Z ResultSet ist null warum? Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
Dimax Erstellen ResultSet und Statement Datenbankprogrammierung 30
C PostgreSQL ResultSet.TYPE_SCROLL_SENSITIVE setzen Datenbankprogrammierung 2
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
L Zugriff auf ein Resultset Datenbankprogrammierung 7
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
D Resultset schließen ?? Datenbankprogrammierung 5
T Oracle Resultset to Array sehr langsam. Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
J SQLite ResultSet closed -- Wiederholende DB-Abfragen Datenbankprogrammierung 6
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
L ResultSet Datenbankprogrammierung 1
J wie mit resultset.next() über Datensätze iterieren? Datenbankprogrammierung 15
R MySQL Umgang mit ResultSet/Fremdschlüssel ausgeben Datenbankprogrammierung 2
M ResultSet Cachen Datenbankprogrammierung 3
R ResultSet mit "Untertabellen" Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R Resultset.last() Problem Datenbankprogrammierung 12
PaulG Leeres ResultSet initialisieren Datenbankprogrammierung 6
J Frage zu ResultSet Datenbankprogrammierung 3
J SQL ResultSet Previous Datenbankprogrammierung 10
S MySQL ResultSet in ein Array übertragen Datenbankprogrammierung 7
H PostgreSQL Objekte aus ResultSet Datenbankprogrammierung 5
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
O Oracle Resultset greift auf Spaltenüberschriften zu Datenbankprogrammierung 2
Kenan89 Wieso klappt das ResultSet nicht? Datenbankprogrammierung 3
C ResultSet enthält nicht alle Daten Datenbankprogrammierung 4
F Derby/JavaDB Resultset in JTablemodel Datenbankprogrammierung 2
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
B SQLite ResultSet is TYPE_FORWARD_ONLY Datenbankprogrammierung 5
T Exception ResultSet Datenbankprogrammierung 7
0 ResultSet in JTable Datenbankprogrammierung 14
S [SQL] ResultSet Datenbankprogrammierung 4
R ResultSet Datenbankprogrammierung 4
I Sonderbehandlung wenn ResultSet leer ist Datenbankprogrammierung 9
I Problem mit ResultSet Datenbankprogrammierung 2
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
R Detached ResultSet Datenbankprogrammierung 3
F generelle Vorgehensweise ResultSet Datenbankprogrammierung 5
S ResultSet Datenbankprogrammierung 2
A MySQL ResultSet.updateBytes schlägt fehl Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
S ResultSet einer Datenbankabfrage - Nullpointer Exception Datenbankprogrammierung 13
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
T MySQL ResultSet zurückgeben nachdem Connection geschlossen wurde? Datenbankprogrammierung 3
K Keine ResultSet bei if in StoredProcedure Datenbankprogrammierung 16
D ResultSet gibt nichts aus. Datenbankprogrammierung 3
trash ResultSet Syntax Fehler Datenbankprogrammierung 11
ARadauer JDBC ResultSet schließen? Datenbankprogrammierung 4
M Oracle Problem mit Resultset Datenbankprogrammierung 11
J jdbc ResultSet types Datenbankprogrammierung 5
R Frage zu PreparedStatement/ResultSet Datenbankprogrammierung 16
F ResultSet to String[] Datenbankprogrammierung 3
E ResultSet in HashMap Datenbankprogrammierung 8
K Tabelle mit resultset refreshen? Datenbankprogrammierung 4
M Problem mit ResultSet bei SQL Server 2005 Datenbankprogrammierung 6
S ResultSet in ArrayList ablegen Datenbankprogrammierung 17
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
T ResultSet initialisieren Datenbankprogrammierung 2
C kein Resultset Datenbankprogrammierung 2
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
T ResultSet-Inhalt in Arrays schreiben Datenbankprogrammierung 3
S ResultSet variabel auslesen Datenbankprogrammierung 4
D Anzahl der Elemente im ResultSet ermitteln Datenbankprogrammierung 8
A Leeres ResultSet mit H2 unter Vista Datenbankprogrammierung 3
A Warum ist mein ResultSet leer? Datenbankprogrammierung 5
S ResultSet closed Datenbankprogrammierung 2
Z ResultSet mit einer anderen Datenquelle Datenbankprogrammierung 7
O Spaltenname aus Resultset Datenbankprogrammierung 2
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
E Neues select auf ein vorhandenes Resultset Datenbankprogrammierung 11
E ResultSet vergisst Reihe? Datenbankprogrammierung 2
N resultset aus andere klasse übergeben Datenbankprogrammierung 3
F ResultSet refresh moeglich? Datenbankprogrammierung 3
S ResultSet enthält keine Daten Datenbankprogrammierung 2
B Geschlossenes ResultSet Datenbankprogrammierung 6
T ResultSet#next Ungültige Reihenfolge (DB2) Datenbankprogrammierung 5
T ResultSet schließen? Datenbankprogrammierung 6
S Tabelle updaten wenn ResultSet aus JDBC-Quelle Datenbankprogrammierung 2
S ResultSet Datenbankprogrammierung 6
F Filtern innerhalb eines Resultset Datenbankprogrammierung 12
S Connection/Statement/ResultSet auf einmal geschlossen Datenbankprogrammierung 8
@ Like-Klausel; NPE bzw. leeres ResultSet Datenbankprogrammierung 4
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
B No ResultSet was produced Datenbankprogrammierung 2
S ResultSet erweitern ? Datenbankprogrammierung 4
E JDBC, ForwardOnly bei ResultSet nach Uebergabe Datenbankprogrammierung 4
R ResultSet liefert oracle.sql.TIMESTAMP, aber unbrauchbar Datenbankprogrammierung 9
A Probleme mit ResultSet und getString(i) Datenbankprogrammierung 13
RaoulDuke ResultSet - Wie arbeitet sowas intern Datenbankprogrammierung 2
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
G Für jede SQL-Abfrage eigenes Statement und ResultSet? Datenbankprogrammierung 3
T MAX und ResultSet#next Datenbankprogrammierung 10
R ResultSet zu bestimmtem DS navigieren Datenbankprogrammierung 4
S .leeres Resultset abfangen Datenbankprogrammierung 2
B ResultSet ohne Datenbank erstellen Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben