Mam centralnej bazy danych w mojej aplikacji, że kilka różnych działań musi uzyskać dostęp.Android/Java: uzyskiwanie dostępu do tego samego SQLite DB obiektu z wielu działań
Czy powinienem udostępnić ten obiekt, czyniąc go statycznym? Jak na przykład w działalności, która inicjuje DB zrobić to:
protected static appDatabase db;
Wtedy inni mogą uzyskać do niego dostęp za pośrednictwem FirstActivity.db
.
Inną opcją jest utworzenie obiektów o wartości private appDatabase db
we wszystkich działaniach, które tego wymagają, ale podejrzewam, że otwieranie wielu obiektów db w celu uzyskania dostępu do tych samych przechowywanych danych może być marnotrawstwem.
Jednak nie wiem zbyt wiele o java, dlatego właśnie pytam - jaki jest preferowany sposób na zrobienie tego i dlaczego?
Dzięki
W mojej aplikacji robi używać statycznego na takich obiektach. Może jego preferowane, ale ja tego nie zrobiłem. Interesujące, aby zobaczyć, jakie odpowiedzi otrzymasz. –
Możesz użyć singletonu? – fge
Zwykle pracuję z bazami danych znajdującymi się za ContentProvider w moim środowisku zawodowym i odkryłem, że zapewnienie tylko jednego połączenia z bazą danych w danym momencie (z wykorzystaniem pojedynczego wzorca, jak sugeruje @fge) pomaga mi uporać się z pewnymi problemami z spójnością danych i uniknąć "nadużycia sqlite" wyjątki ". Zastanawiam się, jak te argumenty utrzymują się w środowisku, które nie jest ContentProvider i dlatego wznowiłem twoje pytanie. Być może osoba, która odpowie na twoje pytanie, może także wspomnieć, jak duże korzyści z wydajności możemy oczekiwać w przypadku połączeń wielokrotnych vs pojedynczych? : D – baske