sql >> データベース >  >> RDS >> SQLite

SQLiteConnectionオブジェクトのリークを防ぐことができません

    あなたはあなたがオンラインで多くの質問を調べたと言います、しかしあなたは間違いなくこれまたはこれを調べませんでした。それは文字通り検索の5分後に発生しました。

    とにかく、私があなたなら、この問題を解決するために、finallyを含めます 接続を閉じるときの句。これは、データベースヘルパーを静的インスタンス変数として宣言し、AbstractFactoryパターンを使用してシングルトンプロパティを保証することを意味します。

    DatabaseHelperが1つだけであることを確認していないため、警告が発生しています いつでも存在します。 mInstanceの場合 オブジェクトが初期化されていません。オブジェクトが作成されます。すでに作成されている場合は、単に返されます。

    コードは次のとおりです:

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

    しかし、あなたの質問(他の投稿ですでに回答されている)への私の唯一の貢献は、初級英語の不足を改善することであるとあなたが言うので、あなたがこれを適切な答えとして受け入れることができるかどうかはわかりません。

    >


    1. すべての見積もり問題の前にスラッシュ

    2. debianのpostgresから古いデータを削除するcronジョブ

    3. CTEを使用してSQLServerクエリ出力の欠落日を入力する

    4. SQLPARTITIONBY句をいつどのように使用するか