【Android】テーブルのレコード数を簡単に取得する
AndroidでSQLiteを使っている場合、時々あるテーブルのレコード数を取得したい時がある。
レコード数を取得したい場合、以下のようなパターンが考えられます。
- テーブルのレコード数が全部で何件あるか知りたい
- テーブル内で特定の条件に合うレコード数が何件あるか知りたい
という場合に、android.database.DatabaseUtilsクラスのqueryNumEntriesメソッドを使えば簡単にレコード数が取得できる。
DatabaseUtils#queryNumEntriesメソッド
使い方はとても簡単。
// db=SQLiteDatabase User.TABLE_NAME=users
long recodeCount = DatabaseUtils.queryNumEntries(db, User.TABLE_NAME);
Log.d(TAG, "recodeCount : " + recodeCount);
引数にSQLiteDatabaseとテーブル名を渡すことで、テーブルのレコード数が取得できます。
内部的には以下のようなSQL文が実行されています。
SELECT COUNT(*) FROM users
テーブル内で特定の条件に合うレコード数が何件あるか知りたい
これもqueryNumEntriesメソッドを使うことで取得できます。
引数にWhere句を指定できるようにもなっているので、特定の条件に合うレコード数も簡単に取得できます。
例えば、画像のPathを保存しているimageテーブルがあったとして、pngの画像が何件あるか知りたい場合は以下のような感じ。
// db=SQLiteDatabase Image.TABLE_NAME=images type=TEXT
long recodeCount = DatabaseUtils.queryNumEntries(db, Image.TABLE_NAME,"type = '?'",new String[]{ "png" });
Log.d(TAG, "recodeCount : " + recodeCount);
内部的には以下のようなSQL文が実行されています。
SELECT COUNT(*) FROM images WHERE type = 'png'
まとめ
レコード数の取得は自分で実装することも可能ですが、android.database.DatabaseUtilsクラスのqueryNumEntriesメソッドを使った方が断然楽です!
ということで、今まで自分でガリガリ実装していた人はこっちも使ってみるといいと思います!
ちなみに、私はこれを知るまでガリガリ自分で実装してました…(笑)
Author And Source
この問題について(【Android】テーブルのレコード数を簡単に取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/operandoOS/items/eb829a56f28d2c56a436著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .