1. 程式人生 > >在單元測試裡測試新增資料到資料庫

在單元測試裡測試新增資料到資料庫

1,首先建立資料庫工具類  DButil.java

程式碼如下:

package com.dd.dd.util;

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

public class DButil extends SQLiteOpenHelper {
	private static final int VERSION = 1; // 此處控制版本資訊
	private static final String DBNAME = "school.db";// 此處是要建立的資料庫名
	private static final String TAG = "DButil"; // 這個是要輸出的標籤名

	public DButil(Context context) { // 建立構造方法,把Content物件傳進去
		super(context, DBNAME, null, VERSION); // 呼叫父類
	}

	@Override
	public void onCreate(SQLiteDatabase db) { // 當沒找到表時,就返回來執行這個方法,去建立表
		Log.i(TAG, "執行onCreate()方法");
		db.execSQL("create table student (id integer primary key,name varchar(20))"); // 建立表
		Log.i(TAG, "執行完onCreate()方法");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 這個方法是控制版本的
	}

}


2,第二步是要建立dao層,dao層在學習javaee時大家都已經深刻接觸了吧!這裡就不多說了StudentDao

程式碼如下:

package com.dd.dd.dao;

import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

import com.dd.dd.model.Student;
import com.dd.dd.util.DButil;

public class StudentDao {
	private DButil helper;
	private SQLiteDatabase db;
	private static final String TAG = "StudentDao"; // 這裡也是一個標籤,大家看自己要輸出什麼,就。。。

	public StudentDao(Context context) {
		helper = new DButil(context); // 這裡是在構造方法裡呼叫剛才那個資料庫工具類DButil.java
	}

	// 新增
	public void add(Student student) {
		db = helper.getWritableDatabase();  //呼叫getWritableDatabase()
		Log.i(TAG, student.getName() + student.getId());  //在日誌輸出那裡輸出獲得的資料
		db.execSQL("insert into student (id,name) values(?,?)", new Object[] {
				student.getId(), student.getName() }); //這裡是執行新增語句,和mysql都是一致的
	}
}
3,接下來就是建立測試類方法StudentDaoTest.java

程式碼如下

package com.dd.dd.dao;

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

import com.dd.dd.model.Student;

public class StudentDaoTest extends AndroidTestCase {
	private static final String TAG = "StudentDaoTest"; // 標籤名

	public void testadd() {
		Log.i(TAG, "資料庫連線成功!"); // 輸出日誌
		StudentDao studentDao = new StudentDao(this.getContext()); // 建立StudentDao例項,並傳入this.getContext()
		Student student = new Student(); // 建立Student例項,Student就是bean類
		student.setId(1); // 傳遞資料
		student.setName("旺旺");
		studentDao.add(student);// 呼叫add方法
		Log.i(TAG, "資料新增成功!");
	}
}
然後就這些了,忘了給大家寫那個Student類的程式碼了,

其實裡面就是一個id 還有一個name 倆個屬性,然後封裝就完成了!


然後就是執行並且看日誌輸出就可以了