代码改变世界

android数据库SQLite简单测试

2014-02-14 14:43  kingshow  阅读(1747)  评论(0编辑  收藏  举报

     SQLite是文本型的数据库,这里是简单的数据库创建和数据库升级。上班闲得无聊,突然想起昨天有人问android数据库的创建和升级,所以简单记录一下,高手没有必要看这个博文 O(∩_∩)O~

一、首先看一下整个工程目录

二、创建android工程名db_test,打开AndroidManifest.xml文件,添加单元测试

     点击instrumentation->add,然后再右边Name行处,点击Browser,添加InstrumentationTestRunner;在Target package行处,点击Browser添加自己应用包名(这里是com.bruce.db_test)

     注意:在完成上述操作后,要在<application></application>节点中添加<uses-library android:name="android.test.runner"/>节点,如图:

      

三、创建DbOpenHelper类,继承SQLiteOpenHelper类,具体代码如下:

package com.bruce.db_test.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DbOpenHelper extends SQLiteOpenHelper {
    private String TAG = "MyTest";
    private static String name = "mydb.db";
    private static int version = 2;
    public DbOpenHelper(Context context) {
        super(context, name, null, version);
        Log.i(TAG, "111->DbOpenHelper");
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        Log.i(TAG,"222->onCreate begin");
        String sql = "create table person(id integer primary key autoincrement,name varchar(64),address varchar(64))";
        db.execSQL(sql);
        Log.i(TAG, "333->onCreate end");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
        Log.i(TAG, "444->onUpgrade begin");
        String sql = "alter table person add sex varchar(8)";
        db.execSQL(sql);
        Log.i(TAG, "555->onUpgrade end");
    }

}
View Code

四、创建MyTest类,继承AndroidTestCase类,具体代码如下:

package com.bruce.db_test.test;

import com.bruce.db_test.db.DbOpenHelper;

import android.test.AndroidTestCase;
import android.util.Log;

public class MyTest extends AndroidTestCase {
    private String TAG = "MyTest";
    public void dbCreate(){
        Log.i(TAG, "test begin");
        DbOpenHelper helper = new DbOpenHelper(getContext());
        helper.getWritableDatabase();
        Log.i(TAG, "test end");
    }
    
}
View Code

五、测试
   1.首先测试数据库的创建,先把DbOpenHelper类onUpgrade方法中的四行代码注释掉,变量名version值改为1,然后安装应用到模拟器,可以测试数据库的创建;

      当JUnit中显示条为绿色时,表示单元测试成功,这时可以从File Explorer中的data->data->com.bruce.db_test->databases->mydb.db导出数据库到电脑中,用SQLite Expert Professional 工具打开mydb.db查看,如图:

    

2.测试数据库升级,把DbOpenHelper类onUpgrade方法中注释的代码打开,把version变量的值改为2,如果代码中所示,然后同样点击MyTest中dbCreate方法进行测试,显示测试成功后,在把mydb.db文件重新导出到电脑,用 SQLite可视化工具打开,这时可以看到新添加了一列sex,如图:

    

当然方式方法还有很多,条条大路通罗马,可以自己多动手试试。