Z
zumafx
Fortgeschrittenes Mitglied
- 58
Moin
Meine App macht mittlerweile, was sie soll und ich kann Daten in der DB speichern und auslesen.
Der Übersichtlichkeit halber habe ich alle Datenbankmethoden in eine
eigene Klasse (DbMethoden) ausgelagert.
Bei Aufruf einer Methode gebe ich dann neben den Daten als Parameter
mit. Soweit so gut.
Nun wollte ich beim evtl. Updaten die Daten sichern, update machen und dann die Daten wieder einfügen.
Das habe ich wie folgt versucht:
DbHandlerHelper.java
Mein Problem: Die Parameter connection und database, wie muss ich die benutzen ?
Ich muss irgendwie "sich selbst" übergeben ?
Ich versteh da noch nicht so wirklich, wie das abläuft in Android/Java und würde mich sehr freuen,
wenn mir jemand sagt, wie/welche Parameter ich angeben muss und
das warum wäre noch ein nettes Schmankerl dazu.
Vielen Dank
Meine App macht mittlerweile, was sie soll und ich kann Daten in der DB speichern und auslesen.
Der Übersichtlichkeit halber habe ich alle Datenbankmethoden in eine
eigene Klasse (DbMethoden) ausgelagert.
Bei Aufruf einer Methode gebe ich dann neben den Daten als Parameter
Code:
Context con,
SQLiteDatabase connection,
SQLiteOpenHelper database
mit. Soweit so gut.
Nun wollte ich beim evtl. Updaten die Daten sichern, update machen und dann die Daten wieder einfügen.
Das habe ich wie folgt versucht:
DbHandlerHelper.java
Code:
public class DbHandlerHelper extends SQLiteOpenHelper {
private Context context;
DbHandlerHelper(Context context) {
super(context,
context.getResources().getString(R.string.DATABASE_NAME),
null,
Integer.parseInt(context.getResources().getString(R.string.DATABASE_VERSION)));
this.context = context;
}
// Tabellen erzeugen
@Override
public void onCreate(SQLiteDatabase db) {
for(String sql : context.getResources().getStringArray(R.array.create_Db))
db.execSQL(sql);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Alte Daten sichern
List<DatenA> a = DbMethoden.getAlleDatenA(context, connection, database);
List<DatenB> b = DbMethoden.getAlleDatenB(context, connection, database);
db.execSQL("DROP TABLE IF EXISTS " + context.getResources().getString(R.string.TABLE_NAME_A));
db.execSQL("DROP TABLE IF EXISTS " + context.getResources().getString(R.string.TABLE_NAME_B));
onCreate(db);
// Alte Daten wieder einlesen
for (int i = 0; i <= a.size()-1; i++) {
DbMethoden.addDatenAToDb(context, connection, database, a.get(i));
}
for (int i = 0; i <= b.size()-1; i++) {
DbMethoden.addDatenBToDb(context, connection, database, b.get(i));
}
}
Ich muss irgendwie "sich selbst" übergeben ?
Ich versteh da noch nicht so wirklich, wie das abläuft in Android/Java und würde mich sehr freuen,
wenn mir jemand sagt, wie/welche Parameter ich angeben muss und
das warum wäre noch ein nettes Schmankerl dazu.
Vielen Dank