2012年04月05日

SQLiteデータベースを作成する


Androidアプリケーションでデータの保存や呼び出しを使いたいときは
標準でSQLiteを使用できます
各アプリケーションのディレクトリ以下に指定したファイル名で
データベースの実体であるファイルが作成されます

SQLiteとは・・・
サーバとしてではなくアプリケーションに組み込まれて利用される軽量のデータベースです
アプリケーション上で扱うデータを保存しておきたいけど
サーバにわざわざ保持する必要がない場合には軽量なSQLiteは非常に有効です
例えば・・・
(1)データを次々に蓄積して、その中からデータを抽出するタイプのアプリケーション
単語帳・メッセンジャーなど
(2)データを永続的に保持しておくタイプのアプリケーション
家計簿・メモなど
(3)大量のデータから任意のデータを探すタイプのアプリケーション
辞書・データベースアプリなど

SQLiteで扱うことのできるデータは以下のものがあります
NULL NULL値
INTEGER 符号付整数
REAL 浮動小数点数
TEXT テキスト
BLOB Binary Large OBject。入力データをそのまま格納

SQLiteデータベースを作成する
まずはSQLiteデータベースを作成してみます
データベースの作成にはSQLiteOpenHelperクラスを使用します
SQLiteOpenHelperクラスのコンストラクタは次のようになります
SQLiteOpenHelper(Context context, String fileName,
 SQLiteDatabase.CursorFactory factory, int version) 
context・・・コンテキストオブジェクト
fileName・・・データベース名
factory・・・通常nullを指定
version・・・データベースのバージョン

コンストラクタとは・・・

今回はデータベース名を“blog_testdb”、データベースのバージョンを“1”
としました
記録するデータは
text形式の“Name”と“Tel”
integer形式の“Age”の3つとしました
まずはDatabaseHelperのクラスを作ります
作成する場所はsrcフォルダの中にあるアクティビティと同列の場所
(今回はsrc/blog/test)
を右クリックで新規→クラスを選びます
device75.png

名前に“DatabaseHelper”と入力しOKをおします
するとActivityと同列にDatabaseHelper.javaが作成されます
device76.png
中を以下のように変更します
package blog.test;

import android.content.Context;  
import android.database.sqlite.SQLiteDatabase;  
import android.database.sqlite.SQLiteOpenHelper;  
  
  
public class DatabaseHelper extends SQLiteOpenHelper {  
   
    // データベース名   
    private final static String DB_NAME = "blog_testdb";  
    // データベースのバージョン   
    private final static int DB_VER = 1;  
   
    //コンストラクタ  
    public DatabaseHelper(Context context) {  
        super(context, DB_NAME, null, DB_VER);  
    }  
  
    //onCreateメソッド 
    //データベースが作成された時に呼ばれます。
    @Override  
    public void onCreate(SQLiteDatabase db) {  
        String sql = "";  
        sql += "create table MyTable (";  
        sql += " _id integer primary key autoincrement";  
        sql += ",Name text not null";  
        sql += ",Tel text";  
        sql += ",Age integer";  
        sql += ")";  
        db.execSQL(sql);  
    }  
  
    /* 
     * onUpgradeメソッド 
     * onUpgrade()メソッドはデータベースをバージョンアップした時に呼ばれる
     */  
    @Override  
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
    
    }  
  
}  
データベースが存在しない状態でデータベースをオープンしようとすると
onCreateメソッドが呼ばれます
その中でMyTableというテーブルが作成されます
" _id integer primary key autoincrement"では
Noに自動連番で0から順番に数字が割り振られていきます

わかりやすくエクセルで例えると
データベース名・・・エクセルファイル名(○○.xls)
テーブル名・・・シート名(sheet1など)
テーブル・・・列(今回はNo・Name・Tel・Age)
これに自分で追加したい項目を行として追加していきます
これでDatabaseHelperクラスは完成しましたがデータベースは作成されていません
MainActivityでDatabaseHelperクラスを実行し
データベースを作成します
MainActibity.java
package blog.test;
 
import android.app.Activity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
 
public class MainActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    	        super.onCreate(savedInstanceState);
        setTitle("MainActivity");
        setContentView(R.layout.main);
        
        //データベースヘルパーのインスタンスを作成する(まだデータベースはできない)  
        DatabaseHelper dbHelper = new DatabaseHelper(this);  
        //データベースオブジェクトを取得する(データベースにアクセスすると作成される。)  
        SQLiteDatabase db = dbHelper.getWritableDatabase();   
        //データベースを閉じる  
        db.close();  
	
    }
}
これでpackage blog.test専用のデータベースが作成されました

データベースの確認の仕方
スポンサードリンク

posted by kenken at 14:17 | Comment(0) | TrackBack(0) | データベース SQLite | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/262390079
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。