Bazı Android proje var ve bunların çoğu SQLite veritabanları ile bağlanır. İlgilendiğim, "DatabaseHelper.class" gibi bir statik sınıf kullanmak için iyi bir programlama uygulaması (ya da kötü bir habbit), veritabanı manipülasyonu ile ilgili tüm statik yöntemlere sahip olacağım. ÖrneğinStatik "veritabanı yardımcı" sınıfını kullanmak tamam mı?
public static int getId(Context context, String name) {
dbInit(context);
Cursor result = db.rawQuery("SELECT some_id FROM table WHERE some_name = '" + name + "'", null);
result.moveToFirst();
int id = result.getInt(result.getColumnIndex("some_id"));
result.close();
return id;
}
nerede dbinit (bağlam) Ben kolayca bu yöntem çağırabilir şeye ihtiyacım olduğunda Sonra
private static void dbInit(Context context) {
if (db == null) {
db = context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE, null);
}
}
olduğu (veritabanı manipluation için tüm statik yöntemlerde kullanılır)örneğin
int id = DatabaseHelper.getId(this, "Abc");
EDIT'e (ler): Her bağlantıda dbClose kullanmalı mıyım yoksa etkinlik başına açık mı bırakmalı ve aktiviteyi kapatmalı mıyım? Öyleyse üst kodun böyle bir şeye değiştiğini mi?
...
dbClose();
return id;
}
private static void dbClose() {
if (db != null) {
db.close();
}
}
bir havuz, yalnızca 0.2ms'lik bir maliyete sahip olduğu gibi sadece bir sqlite bağlantısı için overkill'tir, bu yüzden bunu yapın ama –
@ Dan havuzunu atlayın, dolayısıyla "başlangıç havuzu çok basit" olabilir ... –