sql >> Databasteknik >  >> RDS >> SQLite

Det går inte att förhindra SQLiteConnection-objektläckage

Du säger att du tittade på många frågor på nätet, men du tittade definitivt inte på den här eller den här. Det dök bokstavligen upp 5 minuter efter sökning.

Hur som helst, om jag var du, för att lösa det här problemet, skulle jag inkludera en finally klausul när anslutningen stängs. Det betyder att du skulle deklarera din databashjälpare som en statisk instansvariabel och använda abstrakt fabriksmönstret för att garantera singleton-egenskapen.

Din varning inträffar eftersom du inte säkerställer att endast en DatabaseHelper någonsin kommer att finnas vid en given tidpunkt. Om mInstance objektet inte har initierats, ett kommer att skapas. Om en redan har skapats kommer den helt enkelt att returneras.

Här är koden:

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;
}    

Men eftersom du säger att mitt enda bidrag till din fråga (som redan hade besvarats i andra inlägg) är att förfina din brist på elementär engelska, då är jag inte så säker på om du kan acceptera detta som ett adekvat svar.




  1. Utveckla en modul med Java 9 i Eclipse IDE, del 2

  2. Hur man gör en INSERT Pass-Through Query i SQL Server

  3. Lägger till dict-objekt till postgresql

  4. Exportera en PostgreSQL-fråga till en csv-fil med Python