AndroidでSQLiteをつかう

Androidのデータ保存方法のひとつにSQLiteがある。

wikipediaより引用
SQLite はMySQLやPostgreSQLと同じデータベース管理システムであるが、サーバとしてではなくアプリケーションに組み込んで利用される軽量のデータベースである。

SQLが使えるのでそれなりに複雑なことができるし、電源を落としたからデータが消えるとかいうこともない。
消えてほしくないデータをごにょごにょするにはSQLiteがつかえる。
ちなみにiOSでも使える。

SQLiteを操作するライブラリはAndroid SDKで提供されているのでそれを使うことになる。
http://developer.android.com/reference/android/database/package-summary.html
http://developer.android.com/reference/android/database/sqlite/package-summary.html

ということで、テスト的に書いてみた。

SQLitePlugin.java

SQLiteTestActivity .java

そんなにきちんと書いていないが、まぁこんなもんだと思えばよいと思う。

いちおう補足。

SELECT文の結果はJSONっぽい文字列に整形するようにしている。
例えば、今回のコードを実行すると [{"str":"hoge","str2":"hoge"},{"str":"fuga","str2":"foo"}] が標準出力される。

SQLiteDatabaseには「insert」「update」「delete」「query」などの関数が用意されていて、それを使うとSQL分を書かずにデータを操作できる。
僕は日頃からSQLを書いていて、上記の関数を使う方が面倒なので「execSQL」「rawQuery」を使うようにした。

またお気づきだとは思うが、このコードだとプレースホルダを全く使ってないのでSQLインジェクションという脆弱性を抱えている。
これについてはSQLiteStatement、SQLiteQueryBuilderとかいうそれっぽいのがあるので調べてみるとよいかと。
僕も調べます。

記事を書いといてなんだが、mucchinのAndroid戦記 – Androidアプリのデータ保存方法の一つ「SQLite」の使い方 がわかりやすいので詳しくはこちらを参照するとよいと思う。

おわり。

Pocket

Posted in Android, Java.