Der zweite Schritt bei der Erstellung unserer Datenbank besteht darin, dem Singleton-Muster zu folgen, um eine Instanz während des Lebenszyklus
der Anwendung bereitzustellen.
Eine Datenbankinstanz kann ressourcenintensiv sein, und die Erstellung mehrerer Instanzen der Datenbank verbraucht
unnötig Speicher und Rechenleistung.
Ein Singleton stellt sicher, dass während des gesamten Lebenszyklus der Anwendung nur eine Instanz der Datenbank existiert,
was die Ressourcennutzung optimiert.
Dafür erstelle ich eine private statische Instanz aus dieser Kontaktdatenbank und nenne sie
Instanz DB-Instanz.
Ich möchte, dass Sie sich mit mir zusammen konzentrieren.
Ich werde ein Singleton-Designmuster in Java implementieren, um eine einzige Instanz während des Lebenszyklus der Anwendung bereitzustellen,
um die Ressourcennutzung zu optimieren und die Erstellung mehrerer Instanzen der Datenbank zu vermeiden.
Öffentliche statische synchronisierte Kontakt-Datenbank und Get-Instanz.
Diese Methode wird verwendet, um eine Kontaktdatenbank zu erstellen, wenn es kalt ist.
Ich übergebe den Kontext als Parameter für diese Methode und beginne hier mit dem Schreiben des Codes.
Ich muss prüfen, ob es eine vorhandene Instanz der Datenbank während des Lebenszyklus der Anwendung gibt, dann werde ich
sie bereitstellen.
Andernfalls werde ich eine neue Instanz der Raumdatenbank anlegen.
Also, wenn Instanz diese DB-Instanz gleich null ist, so gibt es keine Instanz der Datenbank.
Ich muss eine neue Rauminstanz erstellen.
So db Instanz gleich Raum Punkt Datenbank Builder und innerhalb dieser Builder-Methode muss ich den Kontext Punkt übergeben, erhalten
Anwendungskontext als der erste Parameter.
Dann muss ich den zweiten Parameter übergeben, der vom Typ class ist.
Und hier muss ich die Raumdatenbank angeben und diese Kontaktdatenbank fungiert als Raumdatenbank,
also muss ich sie dot class übergeben.
Und der dritte Parameter ist der Name dieser Datenbank, und ich werde sie wieder Kontakte Unterstrich DB nennen, Raumpunkt
Database Builder.
Dies ist eine Fabrikmethode, die von der Raumbibliothek bereitgestellt wird, um eine neue Datenbank zu erstellen oder auf eine bestehende Datenbank zuzugreifen.
Es ermöglicht Ihnen die Konfiguration und den Aufbau einer Raumdatenbankinstanz Context Dot get application Context.
Kontext ist in der Regel der Kontext der Anwendungskomponente, wie eine Aktivität oder eine Anwendung.
Und hier wird die Methode get application context verwendet, um den Anwendungskontext zu erhalten, der bei der Arbeit mit Datenbanken
oft bevorzugt wird, weil er einen längeren Lebenszyklus hat als beispielsweise ein Aktivitätskontext.
Dies trägt dazu bei, Speicherlecks zu vermeiden, und dies ist die Datenbank Raumdatenbanken, die Sie mit der rooms-Anmerkung
definiert haben, und dies ist der Name der Datenbank Raumdatenbanken sind in der Regel dateibasiert, und dieser Name
wird verwendet, um die Datenbankdatei auf dem Speicher des Geräts zu identifizieren.
Dann muss ich Fallback zur destruktiven Migration aufrufen.
Diese Methode wird verwendet, um eine Datenbankmigrationsstrategie festzulegen.
In diesem Fall wird diese Methode angewandt.
Das bedeutet, dass der Raum, wenn eine neue Version des Datenbankschemas aufgrund von Änderungen in der Entitätsstruktur
erkannt wird, die Datenbank löschen und neu erstellen wird, wobei alle vorhandenen Daten verworfen werden.
Dies wird als destruktive Migration bezeichnet und ist während der Entwicklung nützlich, oder wenn es akzeptabel ist, vorhandene Daten
für Produktionsanwendungen zu verlieren.
In der Regel implementieren Sie ausgefeiltere Migrationsstrategien, um zu verhindern, dass Daten bei Schemaänderungen verloren gehen, oder um
Daten bei Schemaänderungen zu erhalten.
Und schließlich wird die Build-Methode aufgerufen, um die Raumdatenbankinstanz gemäß der angegebenen Konfiguration zu
erstellen.
Dies ist der Fall, wenn es keine Instanz gibt, wenn DB-Instanz gleich null ist.
Andernfalls muss ich die Instanz zurückgeben, die erstellt wurde.
Wenn es also eine Instanz gibt, die in den vorherigen Ausführungen oder Befehlen erstellt wurde, dann muss ich diese zurückgeben.
DB So erstellen wir also nur eine Instanz unserer Datenbank, um den Speicher zu erhalten und Speicherlecks zu vermeiden,
und synchronisiert wird verwendet, um eine Bereinigung der Kontaktdatenbank zu verhindern.
Und das ist für die Themen.
Die Methode get instance stellt also sicher, dass nur.
Es wird eine Instanz der Kontaktdatenbank erstellt und während des gesamten Lebenszyklus der Anwendung verwendet.
Dieses Singleton-Muster hilft bei der Arbeit mit einer Raumdatenbank, die Konsistenz, den Thread, die Sicherheit und die effiziente
Ressourcennutzung zu erhalten.