1. 程式人生 > >sqlite 資料庫的建立以及單元測試插入、刪除、更改資料庫資訊

sqlite 資料庫的建立以及單元測試插入、刪除、更改資料庫資訊

//建立資料庫

package com.liyulei.sqlite;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenHelper extends SQLiteOpenHelper {

    public MyOpenHelper(Context context) {
        //傳進來的上下文環境
        // 資料庫檔案的名字
        // 遊標工廠,遊標等同於結果集,傳null使用預設工廠
// 版本號,不能小於1,用於升級 super(context, "people.db", null,1); } //建立資料庫時呼叫 @Override public void onCreate(SQLiteDatabase db) { //建立表(_id主鍵)(autoincrement自增長) db.execSQL("create table people(_id integer primary key autoincrement,name char(10),phone char(20),salary integer(10))"); //System.out.println("建立資料庫");
} //升級資料庫時呼叫 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { System.out.println("升級資料庫"); } }
//單元測試資料庫,穿件表,插入、刪除、更改表中資訊
public class ApplicationTest extends ApplicationTestCase<Application> {
    public ApplicationTest() {
        super(Application.class
); } private MyOpenHelper myOpenHelper ; private SQLiteDatabase db; //測試方法執行前呼叫 @Override protected void setUp() throws Exception { myOpenHelper = new MyOpenHelper(getContext()); db = myOpenHelper.getWritableDatabase(); } /* //摧毀方法(落淚方法) @Override protected void tearDown() throws Exception { super.tearDown(); db.close(); }*/ public void test(){ //獲取虛擬上下文、資料庫名字 MyOpenHelper myOpenHelper = new MyOpenHelper(getContext()); //如果資料庫不存在,先建立再開啟;如果存在,直接開啟 SQLiteDatabase db = myOpenHelper.getWritableDatabase(); } public void insert() { db.execSQL("insert into people(name,phone,salary) values(?,?,?)",new Object[]{"小明","138765", 13000}); db.execSQL("insert into people(name,phone,salary) values(?,?,?)",new Object[]{"小紅","678393", 13130}); db.execSQL("insert into people(name,phone,salary) values(?,?,?)",new Object[]{"小麗","344745", 43280}); db.execSQL("insert into people(name,phone,salary) values(?,?,?)",new Object[]{"小朋","278393", 1430}); db.execSQL("insert into people(name,phone,salary) values(?,?,?)",new Object[]{"小民","544745", 15380}); db.close(); } public void delete(){ db.execSQL("delete from people where name=?",new Object[]{"小明"}); db.close(); } public void update(){ db.execSQL("updata peole set salary=?where name=?",new Object[]{"100000","小紅"}); db.close(); } public void select(){ Cursor cursor = db.rawQuery("select name,phone from people ",null); //把指標移動到下一行 while(cursor.moveToNext()){ //先通過列名獲取列索引 String name = cursor.getString(Integer.parseInt(cursor.getColumnName(Integer.parseInt("name")))); String phone = cursor.getString(Integer.parseInt(cursor.getColumnName(Integer.parseInt("phone")))); System.out.println(name+";"+phone); } } public void insertApi(){ ContentValues values = new ContentValues(); values.put("name","小曉"); values.put("phone","132443"); values.put("salary","12342"); db.insert("people",null,values); } public void deleteApi(){ int i = db.delete("people","_id = ?",new String[]{"6"}); System.out.println(i); } public void updataApi(){ ContentValues values = new ContentValues(); values.put("name","小民的汽車"); int i = db.update("people", values ,"_id = ?",new String[]{"5"}); System.out.println(i); } public void selectApi(){ //arg1:查詢的欄位 //arg1:查詢的where條件 //arg1:where條件的佔位符 //arg1:查詢的欄位 Cursor cursor = db.query("people",null,null,null,null,null,null,null); while (cursor.moveToNext()){ String name = cursor.getString(1); String phone = cursor.getString(2); String salary = cursor.getString(3); } }