Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android開發學習——SQLite數據庫與單元測試,androidsqlite

Android開發學習——SQLite數據庫與單元測試,androidsqlite

編輯:關於android開發

Android開發學習——SQLite數據庫與單元測試,androidsqlite


SQLite數據庫
 輕量級關系型數據庫
 創建數據庫需要使用的api:SQLiteOpenHelper

 

public class Myopenhelper extends SQLiteOpenHelper {

    //new 時調用
    public Myopenhelper(Context context, String name, CursorFactory factory,
            int version) {
        //name數據庫文件名,游標工廠,數據庫版本
        super(context, name, factory, version);
        
    }

    //數據庫創建時調用
    @Override
    public void onCreate(SQLiteDatabase db) {
//在創建數據庫時創建表..這裡可以增刪改查,只要換裡面的sql語句就可以了!!! db.execSQL("create table person (_id integer primary key autoincrement, name char(10), phone char(20), money integer(20))"); } //數據庫升級時此方法調用 @Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { } }

創建數據庫

public class Testcase extends AndroidTestCase {
    public void test(){
        //getContext():獲取虛擬的上下文,這是測試框架特地方便測試
        Myopenhelper oh = new Myopenhelper(getContext(), "people.db", null, 1);
        //如果數據庫不存在,現先創建數據庫,再獲取可讀可寫的數據庫對象;若存在直接打開
        SQLiteDatabase db = oh.getWritableDatabase();
        //也是可讀可寫的數據庫對象,除非存儲空間滿了,需要數據庫以只讀方式 打開。
        //SQLiteDatabase db1  = oh.getReadableDatabase();
        
    }

}

結果如下:

 數據庫的增刪改查
SQL語句
* insert into person (name, phone, money) values ('張三', '159874611', 2000);
* delete from person where name = '李四' and _id = 4;
* update person set money = 6000 where name = '李四';
* select name, phone from person where name = '張三';

執行SQL語句實現增刪改查

        //插入
        db.execSQL("insert into person (name, phone, money) values (?, ?, ?);", new Object[]{"張三", 15987461, 75000});
        //查找
        Cursor cs = db.rawQuery("select _id, name, money from person where name = ?;", new String[]{"張三"});
測試方法執行前會調用此方法

        protected void setUp() throws Exception {
            super.setUp();
            //                    獲取虛擬上下文對象
            oh = new MyOpenHelper(getContext(), "people.db", null, 1);
        }
使用api實現增刪改查
* 插入
        //以鍵值對的形式保存要存入數據庫的數據
        ContentValues cv = new ContentValues();
        cv.put("name", "劉能");
        cv.put("phone", 1651646);
        cv.put("money", 3500);
        //返回值是改行的主鍵,如果出錯返回-1
        long i = db.insert("person", null, cv);
* 刪除

        //返回值是刪除的行數
        int i = db.delete("person", "_id = ? and name = ?", new String[]{"1", "張三"});
* 修改
    
        ContentValues cv = new ContentValues();
        cv.put("money", 25000);
        int i = db.update("person", cv, "name = ?", new String[]{"趙四"});
* 查詢
        //arg1:要查詢的字段
        //arg2:查詢條件
        //arg3:填充查詢條件的占位符
        Cursor cs = db.query("person", new String[]{"name", "money"}, "name = ?", new String[]{"張三"}, null, null, null);
        while(cs.moveToNext()){
            //                            獲取指定列的索引值
            String name = cs.getString(cs.getColumnIndex("name"));
            String money = cs.getString(cs.getColumnIndex("money"));
            System.out.println(name + ";" + money);
        }

 

單元測試junit
定義一個類繼承AndroidTestCase,在類中定義方法,即可測試該方法

 

在清單文件裡加:
在指定指令集時,targetPackage指定你要測試的應用的包名
        <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.itheima.junit"    //這個按  alt+/ 自己選吧!
        ></instrumentation>
定義使用的類庫
 <uses-library android:name="android.test.runner"></uses-library>



 斷言的作用,檢測運行結果和預期是否一致
 如果應用出現異常,會拋給測試框架

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved