Android[中级教程]第四章 单元测试AndroidTestCase
相信很多同学都会有操作SQLite不方便的感觉,对于数据库操作又不能很明显地看出问题,这里我们就接上一章的SQLite操作辅助类进行单元测试,OK,我们来看一下类码:首先是DatabaseHelper.java
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper
{
//数据库名称
private static final String DB_NAME = "SQLiteDemo.db";
//数据库版本
private static final int DB_VERSION = 1;
//表名
public static final String TABLE_NAME = "demo";
private static final String DB_CREATE = "create table " + TABLE_NAME + " (_id integer primary key autoincrement, name varchar(20), number varchar(10))";
public DatabaseHelper(Context context)
{
super(context, DB_NAME, null, DB_VERSION);
}
/**
* 创建表
*/
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(DB_CREATE);
}
/**
* 更新表
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// db.execSQL("drop table if exists " + TABLE_NAME);
// onCreate(db);
}
}
接着再上数据操作辅助类DatabaseServer.java
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class DatabaseServer
{
private DatabaseHelper dbHelper;
public DatabaseServer(Context context)
{
this.dbHelper = new DatabaseHelper(context);
}
/**
* 插入数据
*
* @param name
* 名字
* @param number
* 数据
* @return 如果成功则返回true,否则返回false
*/
public boolean insert(String name, String number)
{
//创建或打开数据库
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("number", number);
//插入数据,返回插入数据ID
long id = db.insert(dbHelper.TABLE_NAME, null, cv);
if (id != 0)
{
return true;
}
return false;
}
/**
* 更新数据
*
* @param id
* 数据列_id
* @param number
* 数量
* @return 如果成功则返回true,否则返回false
*/
public boolean update(int id, String number)
{
SQLiteDatabase db = dbHelper.getWritableDatabase();
//Android自带的ContetValues,类似于Map,提供了put(String key, XXX value)的方法存入数据
ContentValues cv = new ContentValues();
cv.put("number", number);
//通过ContentValues更新数据表,返回更新的ID值
int result = db.update(dbHelper.TABLE_NAME, cv, "_id=?",
new String[] { String.valueOf(id) });
if (result != 0)
{
return true;
}
return false;
}
/**
* 删除数据
*
* @param id
* 数据列_id
* @return
*/
public boolean delete(int id)
{
SQLiteDatabase db = dbHelper.getWritableDatabase();
//删除指定ID值
int result = db.delete(dbHelper.TABLE_NAME, "_id=?",
补充:移动开发 , Android ,