SQLITE addData, updateData usw. > Code Vereinfachung möglich ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • SQLITE addData, updateData usw. > Code Vereinfachung möglich ?

    Hallo zusammen

    ich bin gerade dabei meinen Code zu überarbeiten bzw. ihn zu vereinfachen.
    Ich habe in meiner DataBaseHelper Class eigentlich viele gleiche Zeilen in Methoden die immer wieder auftauchen.
    Hier mal 2 Beispiele

    Quellcode

    1. public boolean addDataSpecial(String id,String LeftHandPlA, String LeftHandPlB, Integer Filter1, Integer Filter2,Integer Favorites,
    2. Integer BallShotTable1A, Integer BallShotTable1B, Integer BallShotTable2A, Integer BallShotTable2B, Integer BallShotTable3A, Integer BallShotTable3B,
    3. Integer BallShotTable4A, Integer BallShotTable4B, Integer BallShotTable5A, Integer BallShotTable5B, Integer BallShotTable6A, Integer BallShotTable6B,
    4. String Description, String ShortDescription,
    5. Integer Trajectory1, Integer SideSpin1, Integer Speed1, Integer BackSpinTop1, Integer Direction1, Integer Trajectory2, Integer SideSpin2, Integer Speed2, Integer BackSpinTop2, Integer Direction2,
    6. Integer Trajectory3, Integer SideSpin3, Integer Speed3, Integer BackSpinTop3, Integer Direction3, Integer Trajectory4, Integer SideSpin4, Integer Speed4, Integer BackSpinTop4, Integer Direction4,
    7. Integer Trajectory5, Integer SideSpin5, Integer Speed5, Integer BackSpinTop5, Integer Direction5, Integer Trajectory6, Integer SideSpin6, Integer Speed6, Integer BackSpinTop6, Integer Direction6, Integer ShotHeight,
    8. Integer FilterCopy, String Link2, String Col54, Integer Col55,Integer Col56, Integer Col57, Integer Col58, Integer Col59, Integer Col60 )
    9. // "Integer BallShotTable3A) //+ String id > könnte eine ID vorgegen
    10. {
    11. SQLiteDatabase db = this.getWritableDatabase();
    12. ContentValues contentValues = new ContentValues();
    13. contentValues.put(COL1,id);
    14. contentValues.put(COL2, LeftHandPlA);
    15. contentValues.put(COL3, LeftHandPlB);
    16. contentValues.put(COL4, Filter1);
    17. contentValues.put(COL5, Filter2);
    18. contentValues.put(COL6, Favorites);
    19. contentValues.put(COL7, BallShotTable1A);
    20. contentValues.put(COL8, BallShotTable1B);
    21. contentValues.put(COL9, BallShotTable2A);
    22. contentValues.put(COL10, BallShotTable2B);
    23. .....
    Alles anzeigen


    und

    Quellcode

    1. public int updateData(String id, String LeftHandPlA, String LeftHandPlB, Integer Filter1, Integer Filter2, Integer Favorites,Integer BallShotTable1A, Integer BallShotTable1B, Integer BallShotTable2A, Integer BallShotTable2B, Integer BallShotTable3A, Integer BallShotTable3B,
    2. Integer BallShotTable4A, Integer BallShotTable4B, Integer BallShotTable5A, Integer BallShotTable5B, Integer BallShotTable6A, Integer BallShotTable6B,
    3. String Description, String ShortDescription,
    4. Integer Trajectory1, Integer SideSpin1, Integer Speed1, Integer BackSpinTop1, Integer Direction1, Integer Trajectory2, Integer SideSpin2, Integer Speed2, Integer BackSpinTop2, Integer Direction2,
    5. Integer Trajectory3, Integer SideSpin3, Integer Speed3, Integer BackSpinTop3, Integer Direction3, Integer Trajectory4, Integer SideSpin4, Integer Speed4, Integer BackSpinTop4, Integer Direction4,
    6. Integer Trajectory5, Integer SideSpin5, Integer Speed5, Integer BackSpinTop5, Integer Direction5, Integer Trajectory6, Integer SideSpin6, Integer Speed6, Integer BackSpinTop6, Integer Direction6, Integer ShotHeight,
    7. Integer FilterCopy, String Link2, String Col54, Integer Col55,Integer Col56, Integer Col57, Integer Col58, Integer Col59, Integer Col60 )
    8. {
    9. SQLiteDatabase db = this.getWritableDatabase();
    10. ContentValues contentValues = new ContentValues();
    11. contentValues.put(COL1, id); //0
    12. contentValues.put(COL2, LeftHandPlA);
    13. contentValues.put(COL3, LeftHandPlB);
    14. contentValues.put(COL4, Filter1);
    15. contentValues.put(COL5, Filter2);
    16. contentValues.put(COL6, Favorites); //5
    17. contentValues.put(COL7, BallShotTable1A);
    18. contentValues.put(COL8, BallShotTable1B);
    19. contentValues.put(COL9, BallShotTable2A);
    20. contentValues.put(COL10, BallShotTable2B);
    21. contentValues.put(COL11, BallShotTable3A); //10
    22. contentValues.put(COL12, BallShotTable3B);
    23. contentValues.put(COL13, BallShotTable4A);
    24. contentValues.put(COL14, BallShotTable4B);
    25. .....
    Alles anzeigen
    Mir geht es hier nicht um die SQLITE Datenbank oder um die Funktion. (Das funktioniert ja alles ordentlich)
    Ich würde nur gerne wissen ob es in Java eine Möglichkeit gibt die Zeilen

    Quellcode

    1. SQLiteDatabase db = this.getWritableDatabase();
    2. ContentValues contentValues = new ContentValues();
    3. contentValues.put(COL1, id); //0
    4. contentValues.put(COL2, LeftHandPlA);
    5. contentValues.put(COL3, LeftHandPlB);
    6. contentValues.put(COL4, Filter1);
    7. contentValues.put(COL5, Filter2);
    8. contentValues.put(COL6, Favorites); //5
    9. contentValues.put(COL7, BallShotTable1A);
    10. ...
    irgendwie auszulagern und sie dann in die Methoden einzubauen.
    Einfach gesagt: wenn es eine Änderung in den Zeilen gibt dann bräuchte ich diese nur 1 mal abzuändern und es würde überall passen >d.h. ich muss nicht in mehren Methoden die gleichen Änderungen vornehmen.
    Hoffentlich kann man verstehen was ich möchte.


    Danke schon mal. Wünsche allen ein Frohes Fest.

    Gruß
    Norbert
  • Hallo
    Du könntest dir eine Klasse für einen Datensatz erstellen. Entweder mit dem Konstkuktor oder mit Getter und Setter Methoden kannste dann darin deine Werte Speichern, und einer Methode Übergeben die dir dann ein ContentValues Objekt daraus erstellt.


    Hier ein Beispiel. Dies sollte dir das Prinzip klar machen was nun auch etwas mehr nach OOP ist.

    Quellcode

    1. public class DB_Datensatz {
    2. // Variablen
    3. String id, LeftHandPlA, LeftHandPlB;
    4. Integer Filter1, Filter2, Favorites, BallShotTable1A, BallShotTable1B, BallShotTable2A, BallShotTable2B, BallShotTable3A, BallShotTable3B;
    5. /**
    6. * Konstruktor
    7. */
    8. public DB_Datensatz( String id, String LeftHandPlA, String LeftHandPlB, int Filter1 ) {
    9. this.id = id;
    10. this.LeftHandPlA = LeftHandPlA;
    11. this.LeftHandPlB = LeftHandPlB;
    12. this.Filter1 = Filter1;
    13. }
    14. public DB_Datensatz(String id,String LeftHandPlA, String LeftHandPlB, Integer Filter1, Integer Filter2,Integer Favorites,
    15. Integer BallShotTable1A, Integer BallShotTable1B, Integer BallShotTable2A, Integer BallShotTable2B, Integer BallShotTable3A, Integer BallShotTable3B,
    16. Integer BallShotTable4A, Integer BallShotTable4B, Integer BallShotTable5A, Integer BallShotTable5B, Integer BallShotTable6A, Integer BallShotTable6B,
    17. String Description, String ShortDescription,
    18. Integer Trajectory1, Integer SideSpin1, Integer Speed1, Integer BackSpinTop1, Integer Direction1, Integer Trajectory2, Integer SideSpin2, Integer Speed2, Integer BackSpinTop2, Integer Direction2,
    19. Integer Trajectory3, Integer SideSpin3, Integer Speed3, Integer BackSpinTop3, Integer Direction3, Integer Trajectory4, Integer SideSpin4, Integer Speed4, Integer BackSpinTop4, Integer Direction4,
    20. Integer Trajectory5, Integer SideSpin5, Integer Speed5, Integer BackSpinTop5, Integer Direction5, Integer Trajectory6, Integer SideSpin6, Integer Speed6, Integer BackSpinTop6, Integer Direction6, Integer ShotHeight,
    21. Integer FilterCopy, String Link2, String Col54, Integer Col55,Integer Col56, Integer Col57, Integer Col58, Integer Col59, Integer Col60 )
    22. {
    23. this.id = id;
    24. this.LeftHandPlA = LeftHandPlA;
    25. this.LeftHandPlB = LeftHandPlB;
    26. this.Filter1 = Filter1;
    27. // ......
    28. }
    29. public DB_Datensatz() {
    30. }
    31. }
    Alles anzeigen


    Java-Quellcode

    1. public class DBZugriff extends SQLiteOpenHelper {
    2. private SQLiteDatabase db;
    3. public DBZugriff(Context activity) {
    4. super(activity, DatenBankName, null, DatenBankVersion);
    5. db = this.getWritableDatabase();
    6. }
    7. private ContentValues erzeugeDatenObjekt(DB_Datensatz datensatz) {
    8. ContentValues contentValues = new ContentValues();
    9. contentValues.put(COL1, id); //0
    10. contentValues.put(COL2, LeftHandPlA);
    11. contentValues.put(COL3, LeftHandPlB);
    12. contentValues.put(COL4, Filter1);
    13. contentValues.put(COL5, Filter2);
    14. contentValues.put(COL6, Favorites); //5
    15. contentValues.put(COL7, BallShotTable1A);contentValues.put(COL1, id); //0
    16. contentValues.put(COL2, LeftHandPlA);
    17. contentValues.put(COL3, LeftHandPlB);
    18. contentValues.put(COL4, Filter1);
    19. contentValues.put(COL5, Filter2);
    20. contentValues.put(COL6, Favorites); //5
    21. contentValues.put(COL7, BallShotTable1A);
    22. contentValues.put(COL8, BallShotTable1B);
    23. contentValues.put(COL9, BallShotTable2A);
    24. contentValues.put(COL10, BallShotTable2B);
    25. contentValues.put(COL11, BallShotTable3A); //10
    26. contentValues.put(COL12, BallShotTable3B);
    27. contentValues.put(COL13, BallShotTable4A);
    28. contentValues.put(COL14, BallShotTable4B);zip klar machen
    29. return contentValues;
    30. }
    31. //-----------------------------------------------------------------------------------------
    32. public long addDataSpecial(DB_Datensatz datensatz) {
    33. try {
    34. ContentValues daten = erzeugeDatenObjekt(datensatz);
    35. return db.insert(tabelle, null, daten); // id wird automatisch von SQLite gefüllt
    36. }
    37. catch(Exception ex) {
    38. return -1;
    39. }
    40. }
    41. //---------------------------------------------------------------------
    42. public int updateData(Stpublic void aktualisiereDatensatz(DB_Datensatz ds, long id) {
    43. try {
    44. ContentValues daten = erzeugeDatenObjekt(ds);
    45. db.update(tabelle, daten, "_id=?", new String[] {String.valueOf( id ) });
    46. }
    47. catch(Exception ex) {
    48. }
    49. }
    50. // in der Activity
    51. DBZugriff dbZugriff = new DBZugriff(this.myActivity);
    52. DB_Datensatz datensatz = new DB_Datensatz(123, null,........);
    53. dbZugriff.addDataSpecial(datensatz);
    Alles anzeigen
    Ein Feedback auf Tipps ist auch schön. :P