android hacks - hack31
DESCRIPTION
「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。http://www.oreilly.co.jp/books/9784873114569/TRANSCRIPT
![Page 1: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/1.jpg)
ANDROIDHACKS#31 SQLITE を使う担当:かわらたん
Twitter : @pfkawara
Blog : http://kawara-tan.blogspot.com/
23/04/12
1
![Page 2: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/2.jpg)
アジェンダ• SQLite とは ( 本に具体的説明無し )
• DB の作成
• テーブルの作成
• DB のアップデート
• query, insert, update, delete 実行 ( 本に具体的説明無し )
感想: SQLite 知らない人には分かりづらい章
サンプルソースに対する説明が少ない ( どの章にも言えるけど… )
23/04/12
2
![Page 3: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/3.jpg)
0. SQLite とは
23/04/12
3
![Page 4: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/4.jpg)
0. SQLite とは• Oracle や MySql と同じデータベース管理システム
• 軽量である ( インストール簡単、すぐに使える )• アプリケーションに組み込まれて使われる• W3C による次世代 HTML(HTML5) の WebSQLDatabase の
方言として採用されている• ただし、 WebSQLDatabase の仕様決めは去年秋に中止
• 公式サイト
• http://www.sqlite.org/• 参考サイト (SQLite 入門 )
• http://www.dbonline.jp/sqlite/
23/04/12
4
![Page 5: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/5.jpg)
1. DB の作成
23/04/12
5
![Page 6: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/6.jpg)
1. DB の作成• SQLiteOpenHelper クラスを extends して作る
23/04/12
6
![Page 7: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/7.jpg)
1. DB の作成• コンストラクタを呼ぶと、 DB 作成に必要な設定ができる
• DB が作られると onCreate() が呼ばれる
• 例では create 文を実行してテーブルを作っている
23/04/12
7
DB を利用する Activityを渡してあげる
![Page 8: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/8.jpg)
2. テーブルの作成
23/04/12
8
![Page 9: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/9.jpg)
2. テーブルの作成• onCreate() の中でテーブルを作成する ( 前述のとおり )
• カラムの型
23/04/12
9
型 説明 例
TEXT 整数や浮動小数点を文字列に変換 column_name TEXT
NUMERIC テキストを整数か浮動小数点に変換。変換できない場合は文字列を格納
column_name NUMERIC
INTEGER 整数に変換 column_name INTEGER
REAL 浮動小数点に変換 column_name REAL
NONE 変換を行わない column_name NONE
![Page 10: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/10.jpg)
2. テーブルの作成• カラムの制約
23/04/12
10
型 説明 例
PRIMARY KEY
テーブル上のユニークなキー column_name integer PRIMARY KEY AUTOINCREMENT
NOT NULL null を格納できなくする column_name text not null
DEFAULT レコード追加時に格納されるデフォルトの値
column_name text DEFAULT ‘algnantoka’
UNIQUE 重複した値を格納できなくする column_name text UNIQUE
AUTOINCREMENT
最後に格納された値 +1 をデフォルトとして利用する (PRIMARY KEY が integer のカラムのみ )
column_name integer PRIMARY KEY AUTOINCREMENT
![Page 11: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/11.jpg)
3. DB のアップデート
23/04/12
11
![Page 12: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/12.jpg)
3. DB のアップデート• SQLiteOpenHelper のメンバである version が変更されると
onUpgrade() が呼ばれる。
23/04/12
12
![Page 13: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/13.jpg)
4. query, insert, update, delete 実行
23/04/12
13
![Page 14: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/14.jpg)
4. query, insert, update, delete 実行• 実行するにあたって
• query() 等のメソッドは SQLiteDatabase クラスで定義されている
• SQLiteOpenHelper( を extends したクラス ) のコンストラクタを使用してインスタンスを作った後、 getWritableDatabase()( または getReadableDatabase())を呼んで取得する
• DB は上記のメソッドが呼ばれたときに作られる。以降は何度呼んでも既に作った DB が返される。
23/04/12
14
![Page 15: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/15.jpg)
4. query, insert, update, delete 実行• query()
• SQL 文 ( クエリ ) を用意して、それを実行してもらう
23/04/12
15
![Page 16: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/16.jpg)
4. query, insert, update, delete 実行• insert()
• レコードを挿入する
23/04/12
16
![Page 17: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/17.jpg)
4. query, insert, update, delete 実行• update()
• 指定したレコードを更新する
23/04/12
17
![Page 18: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/18.jpg)
4. query, insert, update, delete 実行• delete()
• 指定したレコードを削除する
23/04/12
18
![Page 19: Android Hacks - Hack31](https://reader036.vdocuments.mx/reader036/viewer/2022062300/5561562bd8b42a8a7d8b53e4/html5/thumbnails/19.jpg)
参考 URL• Android Developers
• http://developer.android.com/intl/ja/index.html• SQLite 公式サイト
• http://www.sqlite.org/• 参考サイト (SQLite 入門 )
• http://www.dbonline.jp/sqlite/
23/04/12
19