Upload
masanori-ohkawara
View
662
Download
8
Embed Size (px)
DESCRIPTION
「Android Hacks ―プロが教えるテクニック & ツール」(株式会社ブリリアントサービス 著)を教材とした勉強会でのまとめ資料です。http://www.oreilly.co.jp/books/9784873114569/
Citation preview
ANDROIDHACKS#31 SQLITE を使う担当:かわらたん
Twitter : @pfkawara
Blog : http://kawara-tan.blogspot.com/
23/04/12
1
アジェンダ• SQLite とは ( 本に具体的説明無し )
• DB の作成
• テーブルの作成
• DB のアップデート
• query, insert, update, delete 実行 ( 本に具体的説明無し )
感想: SQLite 知らない人には分かりづらい章
サンプルソースに対する説明が少ない ( どの章にも言えるけど… )
23/04/12
2
0. SQLite とは
23/04/12
3
0. SQLite とは• Oracle や MySql と同じデータベース管理システム
• 軽量である ( インストール簡単、すぐに使える )• アプリケーションに組み込まれて使われる• W3C による次世代 HTML(HTML5) の WebSQLDatabase の
方言として採用されている• ただし、 WebSQLDatabase の仕様決めは去年秋に中止
• 公式サイト
• http://www.sqlite.org/• 参考サイト (SQLite 入門 )
• http://www.dbonline.jp/sqlite/
23/04/12
4
1. DB の作成
23/04/12
5
1. DB の作成• SQLiteOpenHelper クラスを extends して作る
23/04/12
6
1. DB の作成• コンストラクタを呼ぶと、 DB 作成に必要な設定ができる
• DB が作られると onCreate() が呼ばれる
• 例では create 文を実行してテーブルを作っている
23/04/12
7
DB を利用する Activityを渡してあげる
2. テーブルの作成
23/04/12
8
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
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
3. DB のアップデート
23/04/12
11
3. DB のアップデート• SQLiteOpenHelper のメンバである version が変更されると
onUpgrade() が呼ばれる。
23/04/12
12
4. query, insert, update, delete 実行
23/04/12
13
4. query, insert, update, delete 実行• 実行するにあたって
• query() 等のメソッドは SQLiteDatabase クラスで定義されている
• SQLiteOpenHelper( を extends したクラス ) のコンストラクタを使用してインスタンスを作った後、 getWritableDatabase()( または getReadableDatabase())を呼んで取得する
• DB は上記のメソッドが呼ばれたときに作られる。以降は何度呼んでも既に作った DB が返される。
23/04/12
14
4. query, insert, update, delete 実行• query()
• SQL 文 ( クエリ ) を用意して、それを実行してもらう
23/04/12
15
4. query, insert, update, delete 実行• insert()
• レコードを挿入する
23/04/12
16
4. query, insert, update, delete 実行• update()
• 指定したレコードを更新する
23/04/12
17
4. query, insert, update, delete 実行• delete()
• 指定したレコードを削除する
23/04/12
18
参考 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