Frage zu JSON

meisterfisch

Mitglied
Hallo,
ich hoffe ich bin der richtigen Abteilung. Es geht um Speicherung von Daten als JSON-Objekt.

Ich will eine eigene Filmdatenbank erstellen, da kommen so um die 10 000 Filme mit den entsprechnenden Daten zusammen. Ich habe ein paar Daten auch bereits eingelesen(nicht alle!) und alles funzt so weit (JSON parsen , daten darstellen...).

Das Jsonobjekt meiner filme sieht so aus

Code:
{"Filme":[{Film1},{Film2},....... ]


Wobei Film1,Film2.. wieder lange Jsonobjekte sind.

Jetzt meine Fragen.
Wenn ich das in eine txt abspeicher, dann wird nur eine Zeile in die txt Datei geschrieben.
Wie lang darf denn eine Zeile in einer txt sein? Ist dieses Vorgehen zum Speichern der Daten sinnvoll?
Alternativ hatte ich gedacht, für jeden Film ein jsonobjekt in eine eigene txt datei zu speichern, nur dann bekomme ich sehr viele Textdateien in einem Ordner. Wie speichert man die Daten am besten ab?

Danke, ich hoffe das meine Frage nicht zu kompliziert und nachvollziehbar ist.

Schöne Grüße
meisterfisch
 

mrBrown

Super-Moderator
Mitarbeiter
Wie lang darf denn eine Zeile in einer txt sein?
Das was dein OS als maximale Dateigröße her gibt ;)

Ist dieses Vorgehen zum Speichern der Daten sinnvoll?
Alternativ hatte ich gedacht, für jeden Film ein jsonobjekt in eine eigene txt datei zu speichern, nur dann bekomme ich sehr viele Textdateien in einem Ordner. Wie speichert man die Daten am besten ab?
Kommt drauf an, was du damit machen willst. Eine Datei pro Dokument dürfte aber Unsinn sein...

10.000 Elemente? Wie wäre es mit einer Datenbank?
Naja, das sind ja auch nur Dateien, die auf der Platte liegen :p
 

meisterfisch

Mitglied
@mrBrown Danke für die schnelle Antwort...

Datenbank(SQL) wäre wohl sinnvoll, habe ich auch schon mit rumprobiert aber, dort bin ich auf Probleme gestossen,die bei Json nicht auftreten.
Beispielsweise wenn eine Beschreibung Anführungsstriche(")hatte, bekam ich im Javaprogram eine Fehlermeldung, weil bei insert selbst Anführungsstriche als Trennzeichen genutzt werden.
 

meisterfisch

Mitglied
Hallo,
@thecain ja das richtig, ich konnte das Problem bloß nicht beheben

@Thallius da muss ich mich erst einlesen,...mir scheint es auch besser zu sein, eine Datenbank zu benutzen, aber ich kenne mich auch noch nicht so gut aus mit SQL.
 

Tobse

Top Contributor
@meisterfisch Dann lies dich ein! ;) Das ist extrem wertvolles Wissen und auf dem Arbeitsmarkt praktisch unerlässlich.

Für den Anfange empfehle ich dir, auf jeden Fall mal SQL zu Coden. Ein Prepared Statement trennt die Struktur des Queries vom Inhalt:

SQL:
INSERT INTO film (name, bewertung) VALUES (?, ?)
Zuerst wird der Query so an den DB-Server geschickt. Der erkennt dann die Struktur, die Daten werden separat übertragen. Für die beiden ? kann man dann Werte angeben, z.B. "Film mit' Apostroph im Titel" und 5. Dadurch wird jeglicher Konflikt zwischen der Logik deines Queries und den Daten vermieden.

Wenn du dann mit SQL gut umgehen kannst macht es Sinn, einen O/RM zu verwenden. Das ist aber Zukunftsmusik und macht nur Sinn, wenn man SQL beherrscht.[/CODE]


P.S.:
Was ist denn, wenn ein Filmtitel ein " hat? ;)
 
Zuletzt bearbeitet:

Tobse

Top Contributor
@andy82 @mrBrown Ja, natürlich ist mir das bewusst ;)

Ich bezog mich dabei auf diese Aussage hier:
[Beispielsweise wenn eine Beschreibung Anführungsstriche(")hatte, bekam ich im Javaprogram eine Fehlermeldung, weil bei insert selbst Anführungsstriche als Trennzeichen genutzt werden.
Wenn das nämlich der Fall ist, benutzt @meisterfisch 100%ig keine Prepared Statements. Und das ist schlecht. Ich verstehe nicht, warum man im Jahre 2017 überhaupt noch jemanden ohne arbeiten lässt. Das Sicherheitsrisiko ist eklatant.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich verstehe nicht, warum man im Jahre 2017 überhaupt noch jemanden ohne arbeiten lässt. Das Sicherheitsrisiko ist eklatant
Ich denke mal, die meisten interessiert es einfach nicht. Das gleiche wie bei Tests und vernünftig strukturiertem Code - einfach hingeklatscht geht halt erstmal schneller, und weiter denken ja die wenigsten
 

DrZoidberg

Top Contributor
Eine Datenbank ist natürlich die professionellste Lösung. Ich wollte aber trotzdem noch erwähnen, dass JSON hier auch problemlos funktionieren sollte. Bei nur 10 000 Datensätze wäre eine JSON Datei wahrscheinlich nicht mehr als ein paar MB groß und kann in einem Bruchteil einer Sekunde geladen und geparst werden.
 

Thallius

Top Contributor
Ich denke mal, die meisten interessiert es einfach nicht. Das gleiche wie bei Tests und vernünftig strukturiertem Code - einfach hingeklatscht geht halt erstmal schneller, und weiter denken ja die wenigsten

Wenn ich mit JDBC arbeite, dann ist es sicherheitstechnisch extrem egal ob prepared statements nehme oder nicht, da es keine Zwischenschicht gibt wo sich ein MITM reinschleichen kann. Prepared statements sind nur für den Webservice (das Backend) wichtig um die Anfragen die reinkommen zu entschärfen.

Gruß

Claus
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn ich mit JDBC arbeite, dann ist es sicherheitstechnisch extrem egal ob prepared statements nehme oder nicht, da es keine Zwischenschicht gibt wo sich ein MITM reinschleichen kann. Prepared statements sind nur für den Webservice (das Backend) wichtig um die Anfragen die reinkommen zu entschärfen
Du kannst meine Aussage noch um ein "extrem egal" ergänzen ;)
 

Tobse

Top Contributor
Wenn ich mit JDBC arbeite, dann ist es sicherheitstechnisch extrem egal ob prepared statements nehme oder nicht, da es keine Zwischenschicht gibt wo sich ein MITM reinschleichen kann. Prepared statements sind nur für den Webservice (das Backend) wichtig um die Anfragen die reinkommen zu entschärfen.

Wo soll ich anfangen... ? Prepared Statements benutzt man überall, wo Benutzereingaben im Spiel sind. Überall. Ich weiss, wenn man weiss, was man macht, geht es auch so, aber Fehler sind Menschlich, oder? Und du willst mir nicht erzählen, dass der obere Code leichter zu lesen + verstehen ist als der untere:

Java:
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c, d FROM table JOIN table ON table.fk = table2.id AND table2.foo = \"" + escapeSQLValue(table2Foo) + \"" WHERE table.bar = \""+ escapeSQLValue(someOtherTransform(12512) + someOtherInput)) + "\" AND table2.something BETWEEN 0 AND " + Integer.toString(table2Something));

Java:
PreparedStatement stmt = connection.prepareStatement("SELECT a, b, c, d FROM table JOIN table ON table.fk = table2.id AND table2.foo = ? WHERE table.bar = ? AND table2.something BETWEEN 0 AND ?");
stmt.setString(0, table2Foo);
stmt.setString(1, tableBar);
stmt.setInt(2, table2Something);
ResultSet rs = stmt.executeQuery();
 
Ä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
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 Ausführungsmöglichkeiten von SQL Befehlen Datenbankprogrammierung 13
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
Thallius Ist JSON als column jetzt der neue Standard oder hab ich was verpasst? Datenbankprogrammierung 34
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
M MySQL JSON-Datei auf Datenbank anwenden Datenbankprogrammierung 17
H JSON Array abfrage beschleunigen Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben