sql >> Database >  >> RDS >> SQLite

Kan lekkage van SQLiteConnection-object niet voorkomen

Je zegt dat je veel vragen online hebt bekeken, maar je hebt zeker niet naar dit of dit gekeken. Het duurde letterlijk 5 minuten zoeken.

Hoe dan ook, als ik jou was, zou ik om dit probleem op te lossen een finally . toevoegen clausule bij het sluiten van de verbinding. Dit betekent dat u uw databasehelper zou declareren als een statische instantievariabele en het Abstract Factory-patroon zou gebruiken om de singleton-eigenschap te garanderen.

Uw waarschuwing wordt gegeven omdat u er niet voor zorgt dat slechts één DatabaseHelper zal ooit op een bepaald moment bestaan. Als de mInstance object niet is geïnitialiseerd, wordt er een gemaakt. Als er al een is gemaakt, wordt deze gewoon teruggestuurd.

Hier is de code:

public ArrayList<ItemSubject> loadDataSubject() {
    ArrayList<ItemSubject> arrayList = new ArrayList<>();
    String select = "select * from " + TABLE_SUBJECT;
    Cursor cursor = getData(select);
    
    
    if (cursor != null && cursor.getCount() > 0) {
    try {
        cursor.moveToFirst();
            for (int i = 0; i < cursor.getCount(); i++) {
                String id = cursor.getString(cursor.getColumnIndex(TAG_ID));
                String course = cursor.getString(cursor.getColumnIndex(TAG_COURSE_NAME));
         ....
                ItemSubject objItem = new ItemSubject(id, courseId,...);
                arrayList.add(objItem);
                cursor.moveToNext();
           }
       finally {
           if (cursor != null)
           cursor.close();
       }
   }
   return arrayList;
}    

Maar aangezien u zegt dat mijn enige bijdrage aan uw vraag (die al in andere berichten was beantwoord) is dat u uw gebrek aan elementair Engels verfijnt, weet ik niet zeker of u dit als een adequaat antwoord kunt accepteren.




  1. Hoe een MySQL-databasegebruiker in cPanel te verwijderen

  2. Een listener configureren in Oracle Database (12c, 18c en 19c edities)

  3. HubSpot ODBC-stuurprogramma

  4. Hoe kan ik (hoofdletterongevoelig) in een kolom zoeken met LIKE-wildcard?