Android Schreiben von JsonDaten in eine SqliteDB

Diskutiere Schreiben von JsonDaten in eine SqliteDB im Mobile Geräte Forum; Hallo zusammen, Beim Schreiben der JSon-Daten in eine SQLIteDB erhalte ich momentan die Fehlermeldung: 2019-01-12 16:01:14.003...

  1. MARJAVA
    MARJAVA Mitglied
    Hallo zusammen,

    Beim Schreiben der JSon-Daten in eine SQLIteDB erhalte ich momentan die Fehlermeldung:

    Code (Java):
    2019-01-12 16:01:14.003 2744-2744/de.markusc.movieplanet E/AndroidRuntime: FATAL EXCEPTION: main
        Process: de.markusc.movieplanet, PID: 2744
        android.database.sqlite.SQLiteException: near "s": syntax error (code 1): , while compiling: INSERT INTO filme(id,type,title,releasedate,genre,overview,voteaverage,budget,runtime,character,name,profilepath,posterpath) VALUES ('390634','0','劇場版「Fate/stay night [Heaven's Feel] ⅠⅠ. lost butterfly」','2019-01-12','Animation, Action, Fantasy, ','Theatrical-release adaptation of the visual novel Fate/stay night, following the third and final route. (Part 2 of a trilogy.)','6',0,120,'arrayListChara','arrayListActor','arrayListBilder','https://image.tmdb.org/t/p/w500/t0jwlwFUrtkPJoq5JH9YrRVROXZ.jpg')
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1677)
            at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1608)
            at de.markusc.movieplanet.DownloadTaskDatenFilm.onPostExecute(DownloadTaskDatenFilm.java:149)
            at de.markusc.movieplanet.DownloadTaskDatenFilm.onPostExecute(DownloadTaskDatenFilm.java:22)
            at android.os.AsyncTask.finish(AsyncTask.java:695)
            at android.os.AsyncTask.-wrap1(Unknown Source:0)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
            at android.os.Handler.dispatchMessage(Handler.java:105)
            at android.os.Looper.loop(Looper.java:164)
            at android.app.ActivityThread.main(ActivityThread.java:6541)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    Diese zeigt mir, dass meine SqliteDB nicht mit den Inhalten klarkommt die aus den JSondaten stammen. Habt ihr ne Idee, wie ich die Daten konvertieren kann um sie besser in die DB zu integrieren.
    Bisher ersetze ich alle ' und " durch Lehrzeichen, doch das fängt nicht alle Fehler ab. Sollte ich die Strings als Blob abspeichern? Was meint ihr?
     
  2. Vielleicht hilft dir dieses Buch hier weiter.
  3. httpdigest
    httpdigest Bekanntes Mitglied
    Anscheinend ersetzt du nicht alle ' Zeichen:
    INSERT INTO filme(id,type,title,releasedate,genre,overview,voteaverage,budget,runtime,character,name,profilepath,posterpath) VALUES ('390634','0','劇場版「Fate/stay night [Heaven's Feel] ⅠⅠ. lost butterfly」','2019-01-12','Animation, Action, Fantasy, ','Theatrical-release adaptation of the visual novel Fate/stay night, following the third and final route. (Part 2 of a trilogy.)','6',0,120,'arrayListChara','arrayListActor','arrayListBilder','https://image.tmdb.org/t/p/w500/t0jwlwFUrtkPJoq5JH9YrRVROXZ.jpg')

    Wenn du einfach ein JDBC PreparedStatement mit Parametern verwendest, wird das Problem automatisch durch JDBC gelöst, ohne, dass du irgendetwas ersetzen musst. Ich vermute mal, dass du aktuell das SQL-Statement mit den Argumenten per String-Konkatenation irgendwie manuell zusammenbaust.
     
  4. MARJAVA
    MARJAVA Mitglied
    Weil ich mir auch nicht sicher bin, ob es die richtige Methode ist, die Daten so in die DB zu schreiben. Beim Lesen der Daten habe ich ja auch wieder den Aufwand. Ist es vielleicht sinnvoller die Daten als Paket einzutragen? Und wie macht man das am besten?
     
  5. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Kommt drauf an, was deine "JsonDaten" überhaupt sind. In deinem Beispiel scheinen das einfach nur Strings und keine Objekte zu sein, also speichere die doch einfach als String?
     
  6. MARJAVA
    MARJAVA Mitglied
    Das sind Strings, die jedoch sich durch enthaltene Zeichen nicht einfach als String übergeben lassen, sondern eben erst bearbeitet werden müssen, damit die sql-codes unempfindlich reagieren.
    Eine Alternative wäre halt schön, etwas bei dem die SQL-Befehle unempfindlich reagieren.
     
  7. httpdigest
    httpdigest Bekanntes Mitglied
     
  8. mrBrown
    mrBrown Super-Moderator Mitarbeiter
     
  9. MARJAVA
    MARJAVA Mitglied
    ok, das kann ich mal versuchen, danke
     
  10. Wenn du Java lernen möchtest, empfehlen wir dir dieses Buch hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Schreiben von JsonDaten in eine SqliteDB - Ähnliche Themen

Rekursion ordentlich aufschreiben
Rekursion ordentlich aufschreiben im Forum Java Basics - Anfänger-Themen
Überschreiben und verdecken
Überschreiben und verdecken im Forum Java Basics - Anfänger-Themen
Clipboard überschreiben?
Clipboard überschreiben? im Forum Java Basics - Anfänger-Themen
Wie kann ich diese Funktion in Haskell umschreiben
Wie kann ich diese Funktion in Haskell umschreiben im Forum Plauderecke
Eigene charAt(i) Methode schreiben
Eigene charAt(i) Methode schreiben im Forum Java Basics - Anfänger-Themen
Thema: Schreiben von JsonDaten in eine SqliteDB