2011年11月11日金曜日

Androidアプリ開発 CVSファイルとDBへの書き込み

/********************アクティビティクラス*************************/
package kawasaki.com;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;

import android.app.Activity;
import android.content.ContentValues;
import android.content.res.AssetManager;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;

public class Db_Test_1 extends Activity {
    /** Called when the activity is first created. */
    //メンバー変数
    //データベースヘルパーの作成

    private DatabaseHelper helper;

    //データベースの宣言
    public static SQLiteDatabase mDb;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //DBファイルの真偽
        File file = new File("/data/data/kawasaki.com/databases/sample.db");
        if(file.exists()){
            file.delete();
            Log.d("kawasaki_debug","ファイルを消去しました");
        }else{
            Log.d("kawasaki_debug","ファイルはありません");
        }

        //DBの作成
        helper  = new DatabaseHelper(this);

        //CSVファイルの読み込み準備
        AssetManager as = getResources().getAssets();
        //DBオープン
        mDb = helper.getWritableDatabase();
        //DB値格納変数
        ContentValues value = new ContentValues();
        try {

            BufferedReader bf = new BufferedReader(new InputStreamReader(as.open("test_csv.csv")));
            String s;
            while((s = bf.readLine()) != null){
                String [] strAry = s.split(",");
                Log.d("kawasaki_debug","" + strAry[0] + "");
                value.put("NAME",strAry[0]);
                value.put("TEL",strAry[1]);
                mDb.insert("BOOK",null,value);
            }
        } catch (IOException e) {
            // TODO 自動生成された catch ブロック
            Log.d("kawasaki_debug", "" + e + "");
        }
    }

    //DBクローズ
    @Override
    public void onDestroy(){
        super.onDestroy();
        helper.close();
    }
}

/**********************DatabaseHelperクラス**********************/

import java.io.File;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper{

    //コンテキスト
    public DatabaseHelper(Context context){
        super(context,"sample.db",null,1);
        //super(context, null, null, 1);
        System.out.println("DBです");
    }

    //テープル作成
    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO 自動生成されたメソッド・スタブ
        db.execSQL("CREATE TABLE BOOK (_id INTEGER PRIMARY KEY,NAME TEXT,TEL TEXT)");


    }

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        // TODO 自動生成されたメソッド・スタブ
    }
}
★★★★★★★★★★★★★まとめ★★★★★★★★★★★★★★
AndroidでもDB基本的なところはかわりません、
SQLiteOpenHelperなど便利なクラスもありますので積極的に使うべきですね、

0 件のコメント:

コメントを投稿