[iPhone] FMDB を使ってSQLite データベースを設定する (Objective-C)

SQLiteを iOS で使ってみます
iPhone にはライブラリーがありますが「FDMB」が使い易いようです
Android では自分で構成しましたことがありますが(汗
それに比べると、とても簡単でした
 
今回は事前に大きなデータがありそれを活用することを想定して、Aのケースとして進めていきます

sponsored link

FMDB

 
FDMBをセットアップ
GitHub からファイルをダウンロードします
https://github.com/ccgus/fmdb
fmdbフォルダにあるファイル群を「Add Files to 」します
 
fmdb_1
 
fmdb.m というファイルがもし入っていたら外します
これはサンプルやテストのためのファイルです
 
「Build Phases」->「Link Binary With Libraries」から libsqlite3.0.dylib フレームワークを
Xcodeプロジェクトに追加します
 
fmdb_2
 
「Build Phases」に追加されました
 
fmdb_3  
FMDatabase.h ファイルをFMDBを使うクラスにインポートします
 

 
これでFMDBを使う準備はできました
 

データベースの作成

 
データベースをFMDBで使う方法として2つあります

  1. 事前にツールなどでデータベースを作成して、アプリ起動時等に呼び出す
  2. アプリの起動時などに、FMDBからSQLiteを使って作成

 
今回は事前に大きなデータがありそれを活用することを想定して、Aのケースとして進めていきます

データベースのCSVフォーマット変換

まず、何らかの形のデータをSQLite用にしなければなりません
とりあえずデータをCSV形式で扱うのが便利です
 
CSVにするためにはどうするのか、ということもありますが
データの提供されるフォーマットが毎回それぞれ違うので、
私はPerlでCSVに変換するスクリプトをとりあえず作りました
 
SQLite形式のデータを扱うツールは色々あります
SQLite.org
 

TkSQLite

 
TkSQLite を使ってみます、これの良いところは

  1. CSVファイルをインポート、エキスポートできる
  2. 日本語文字をサポートしてくれる

CSVファイルのサポートできるソフトはいくつかありますが
UTF-8のために文字化けしてしまうのが多い
TkSQLiteは大丈夫でした
Download
 
ただ残念ながら、こちらにあるMac用のインストールファイルはバージョンが古くて
私のMacでは使えませんでした(2014年/6月)
しょうがないのでWindows版をインストール
 
空のデータベースを作成して CSVファイルを取り込んみます
データベースのトップにはカラムを入れ テーブル名も忘れずに
 
まず  tksqlite.exe を実行します 最初はデータベースがないので作成します
「SQLite3DBを新規作成…」を選び
 
tksqlite_
 
例えば、test.db として作成保存します
 
tksqlite_0
 
何もないデータベースができました
 
tksqlite_1
 
次のような読み込む csv 形式のファイルを
「UTF-8」 コードでTeraPadなどのエディタを使って保存しておきます
 
tksqlite_2
 
TkSQLite の「ファイル」->「読み込み」->「テキストファイル」で
この csv ファイルを読み込みます
 
tksqlite_3
 
読み込みの設定は
新規テーブルを設定
後は、読み込むファイルの形式に合わせる
区切り文字:コンマ
入力文字コード:utf-8
など
 
tksqlite_5
 
読み込みが終了してテーブルを除くと
csv の内容がデータベースに反映しているのがわかります
 
ここでできた test.db をFDMBで使います
 
tksqlite_6
 

FDMBを使う

 
test.db をMacに持ってくる時はWindowsで作成したため
このファイルが「Unix 実行ファイル」とMacで認識されている事を確認してください

  1. データベースをプロジェクトに追加
  2. データベースを格納するための文書フォルダーを取得
    • <Application_Home>/Documents 以下が推奨されているデータの読み書きのための場所です
  3. データベースがあるか確認
    • 無い場合はコピーしていますが、もともとデータベースを入れているので、この時点でエラーです
  4. FMDBに接続しインスタンスを所得
  5. SQL文を使ってリストを全て表示する

 

 
ログにデータベースの内容が出力されました
 
fmdb_4
 
 
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
尚、FMDBを使う上では
著作者の労力に感謝して
著作権規定のことも忘れないようにしましょう
=======================================================
FMDB copyright:
Copyright (c) 2008 Flying Meat Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the “Software”), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
=======================================================
 
 

ページのトップへ戻る
 
sponsored link

シェアする

  • このエントリーをはてなブックマークに追加

フォローする