19
ANDROID HACKS #31 SQLITE ををを をを ををををを Twitter : @pfkawara Blog : http://kawara-tan.blogspot.com/ 22/06/13 1

Android Hacks - Hack31

Embed Size (px)

DESCRIPTION

「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。http://www.oreilly.co.jp/books/9784873114569/

Citation preview

Page 1: Android Hacks - Hack31

ANDROIDHACKS#31 SQLITE を使う担当:かわらたん

Twitter : @pfkawara

Blog : http://kawara-tan.blogspot.com/

23/04/12

1

Page 2: Android Hacks - Hack31

アジェンダ• SQLite とは ( 本に具体的説明無し )

• DB の作成

• テーブルの作成

• DB のアップデート

• query, insert, update, delete 実行 ( 本に具体的説明無し )

感想: SQLite 知らない人には分かりづらい章

    サンプルソースに対する説明が少ない ( どの章にも言えるけど… )

23/04/12

2

Page 3: Android Hacks - Hack31

0. SQLite とは

23/04/12

3

Page 4: Android Hacks - Hack31

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

1. DB の作成

23/04/12

5

Page 6: Android Hacks - Hack31

1. DB の作成• SQLiteOpenHelper クラスを extends して作る

23/04/12

6

Page 7: Android Hacks - Hack31

1. DB の作成• コンストラクタを呼ぶと、 DB 作成に必要な設定ができる

• DB が作られると onCreate() が呼ばれる

• 例では create 文を実行してテーブルを作っている

23/04/12

7

DB を利用する Activityを渡してあげる

Page 8: Android Hacks - Hack31

2. テーブルの作成

23/04/12

8

Page 9: Android Hacks - Hack31

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

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

3. DB のアップデート

23/04/12

11

Page 12: Android Hacks - Hack31

3. DB のアップデート• SQLiteOpenHelper のメンバである version が変更されると

onUpgrade() が呼ばれる。

23/04/12

12

Page 13: Android Hacks - Hack31

4. query, insert, update, delete 実行

23/04/12

13

Page 14: Android Hacks - Hack31

4. query, insert, update, delete 実行• 実行するにあたって

• query() 等のメソッドは SQLiteDatabase クラスで定義されている

• SQLiteOpenHelper( を extends したクラス ) のコンストラクタを使用してインスタンスを作った後、 getWritableDatabase()( または getReadableDatabase())を呼んで取得する

• DB は上記のメソッドが呼ばれたときに作られる。以降は何度呼んでも既に作った DB が返される。

23/04/12

14

Page 15: Android Hacks - Hack31

4. query, insert, update, delete 実行• query()

• SQL 文 ( クエリ ) を用意して、それを実行してもらう

23/04/12

15

Page 16: Android Hacks - Hack31

4. query, insert, update, delete 実行• insert()

• レコードを挿入する

23/04/12

16

Page 17: Android Hacks - Hack31

4. query, insert, update, delete 実行• update()

• 指定したレコードを更新する

23/04/12

17

Page 18: Android Hacks - Hack31

4. query, insert, update, delete 実行• delete()

• 指定したレコードを削除する

23/04/12

18

Page 19: Android Hacks - Hack31

参考 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