SQLiteOpenHelper dbOpenHelper = new (ctx, nameofdb);
SQLiteDatabase db = dbOpener.getWritableDatabase();
Czy muszę zadzwonić .close()
na obu z nich, lub tylko jeden z nich jest na tyle? Jeśli tak, to który?powinienem zadzwonić .close() po obu SQLiteDatabase i SQLiteOpenHelper
SQLiteDatabase
SQLiteOpenHelper
Problem mam jest to, że nie widzę jednego konkretnego wiersza w widoku DDMS w Eclipse, ale kiedy używać kursora, aby uzyskać to, to pokazuje, że mam tego wpisu. Zastanawiam się, czy może to być spowodowane niepoprawnym zamknięciem bazy danych? Każdy, kto może pomóc, będzie świetny. Dzięki!
Co jest w [zasadzie jednej odpowiedzialności] (http://en.wikipedia.org/wiki/Single_responsibility_principle)? Myślałem, że klasa 'SQLiteOpenHelper' używa tylko [aby pomóc], aby otworzyć (aby utworzyć \ zaktualizować) bazę danych. –
@LeonidSemyonov: Można argumentować, że rozszerzenie każdej klasy i dodanie funkcjonalności (nowe metody lub implementowanie interfejsów) i tak dodaje dodatkowe obowiązki ... ale jest to podstawowa zasada OOD/OOP. W Androidzie często zdarza się tworzyć ogólną klasę pomocniczą DB, która sama utrzymuje 'SQLiteOpenHelper'. Chodzi mi o to, że w niektórych przypadkach 'SQLiteOpenHelper' może być rozszerzony, aby zapewnić * ALL * z DB 'pomocnika' metod zamiast oddzielnego DB 'pomocnika' POJO. – Squonk
@Squonk robi 'close any open database object' implikuje, że zamknie wszystkie instancje SqliteDatabase w aplikacji (zakładając, że jest wiele otwartych) lub czy zamyka tylko te, które są związane z bieżącym obiektem SqliteOpenHelper? – aandis