sqlite 数据库的创建以及单元测试插入、删除、更改数据库信息

来源:互联网 发布:指南针文献数据库 编辑:程序博客网 时间:2024/06/05 19:05

//创建数据库

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);        }    }

0 0
原创粉丝点击