このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

Androidでは端末内でデータを永続化するときに、たくさんのデータを保存する場合はSQLiteデータベースを使用すべきです。 SQLiteデータベースは各アプリケーションの固有保存領域に作成されるため作成したアプリケーションしかアクセスすることができません。 他のアプリケーションにデータベースを公開する場合はコンテンツ プロバイダの仕組みを使用する必要があります。 SQLite関連のクラスはandroid.database.sqliteパッケージに含まれています。 また、AndroidOSのバージョンのによってSQLiteのバージョンが異なるので注意しましょう。
Android APISQLite Version
API 243.9
API 213.8
API 113.7
API 83.6
API 33.5
API 13.4

SQLiteを導入する準備

Androidプロジェクトに何も考えずにSQLiteを導入すると、 ActivityにDBへのアクセス処理が記述され無駄にActivityが太ってしまいます。 そこで、SQLiteを導入するにあたり保守性や可読性を高めるための下準備を行います。

導入準備

データベースのスキーマを表現するクラス データベースの構成(テーブル名やカラム名、クリエイト文)を規定するクラスを作ることで、データベースに関わる情報を一括管理するクラスを定義します。
SQLiteOpenHelperを使ってデータベースを作成する AndroidでSQLiteにアクセスするにはSQLiteOpenHelperを継承したクラスを定義し、そのクラスを使用してデータベースにアクセスします。
DAOパターンを導入する SQLiteを使うにあたり、DAOパターンを導入します。

関連クラス

SQLiteDatabaseに定義されているコンビニエンスメソッドを利用する

SQLiteDatabaseには単純なSQL文を実行するコンビニエンスメソッドが多数用意されています。 テーブル名といくつかの条件を引数を渡すだけで使えるので、積極的に使用しましょう。

INSERT文を使う

SQLiteDatabase#insertを使用してデータをインサートする テーブルに対してデータをインサートするコンビニエンスメソッドを使用します。

SELECT文を使う

SQLiteDatabase#queryについて テーブルに対してデータをセレクトするコンビニエンスメソッドを説明します。
SQLiteDatabase#queryを使ってテーブルをセレクトする テーブルに対してデータをセレクトする基本コンビニエンスメソッドを使用します。
SQLiteDatabase#queryを使って色々なセレクトをする テーブルに対してデータをセレクトする応用コンビニエンスメソッドを使用します。
SQLiteDatabase#queryWithFactoryを使ってセレクトをする テーブルに対してデータをセレクトし、SQLiteCursorを継承した自作カーソルを返却するコンビニエンスメソッドを使用します。

UPDATE文を使う

SQLiteDatabase#updateを使用してデータをアップデートする テーブルに対してデータをアップデートするコンビニエンスメソッドを使用します。

DELETE文を使う

SQLiteDatabase#deleteを使用してデータを削除する テーブルに対してデータをデリートするコンビニエンスメソッドを使用します。

REPLACE文を使う

SQLiteDatabase#replaceを使用してデータをリプレースする テーブルに対してデータをリプレースするコンビニエンスメソッドを使用します。

関連クラス

未整理のクラスやインターフェース

SQLiteCursorDriver A driver for SQLiteCursors that is used to create them and gets notified by the cursors it creates on significant events in their lifetimes.
SQLiteTransactionListener A listener for transaction events.
SQLiteClosable An object created from a SQLiteDatabase that can be closed.
SQLiteProgram A base class for compiled SQLite programs.
SQLiteQuery Represents a query that reads the resulting rows into a SQLiteQuery.
SQLiteQueryBuilder This is a convience class that helps build SQL queries to be sent to SQLiteDatabase objects.
SQLiteStatement Represents a statement that can be executed against a database.
SQLiteAbortException An exception that indicates that the SQLite program was aborted.
SQLiteAccessPermException This exception class is used when sqlite can’t access the database file due to lack of permissions on the file.
SQLiteBindOrColumnIndexOutOfRangeException Thrown if the the bind or column parameter index is out of range
SQLiteBlobTooBigException
SQLiteCantOpenDatabaseException
SQLiteConstraintException An exception that indicates that an integrity constraint was violated.
SQLiteDatabaseCorruptException An exception that indicates that the SQLite database file is corrupt.
SQLiteDatabaseLockedException Thrown if the database engine was unable to acquire the database locks it needs to do its job.
SQLiteDatatypeMismatchException
SQLiteDiskIOException An exception that indicates that an IO error occured while accessing the SQLite database file.
SQLiteDoneException An exception that indicates that the SQLite program is done.
SQLiteExceptionA SQLite exception that indicates there was an error with SQL parsing or execution.
SQLiteFullExceptionAn exception that indicates that the SQLite database is full.
SQLiteMisuseException This error can occur if the application creates a SQLiteStatement object and allows multiple threads in the application use it at the same time.
SQLiteOutOfMemoryException
SQLiteReadOnlyDatabaseException
SQLiteTableLockedException