当前位置:操作系统 > 安卓/Android >>

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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,