SQLiteDataBase

来源:互联网 发布:大数据基础平台架构 编辑:程序博客网 时间:2024/05/20 18:49

什么是SQLiteDataBase ?

一个SQLiteDatabase 的实例代表了一个SQLite的数据库,通过SQLiteDatabase实例的一些方法,我们可以执行SQL语句,对数据库进行增/删/查/改 的操作.

需要注意的是,数据库对于一个应用来说是私有的,并且在一个应用中,数据库的名字也是唯一的.


什么是SQLiteOpenHelper ?

这是一个SQLite的辅助类.这个类主要生成一个数据库,并对数据库的版本进行管理.当在程序当中调用这个类的方法getWritableDatabase()或者getReadableDatabase()方法的时候,如果当时没有数据,那么系统就会自动生成一个数据库.

SQLiteOpenHelper类是一个抽象类,通常需要继承这个类,并且实现里面的3个函数.

onCreate(SQLiteDatabase);

onUpgrade(SQLiteDatabase,int,int);

onOpen(SQLiteDatabase);

其中

onCreate(SQLiteDatabase)在数据库第一次生成的时候会调用,一般在这个方法里面生成数据库表.

onUpgrade(SQLiteDatabase,int,int)当数据库需要升级的时候,系统会主动调用这个方法.一般在这个方法里面删除数据表,并建立新的数据表.第一个参数是SQLiteDatabase对象,第二个参数是旧的版本号,第三个参数是新的版本号.

onOpen(SQLiteDatabase)这是当打开数据库时的回调函数,一般不会用到.


====================

可以用如下方法创建数据库:

1. Context.crtaetDatabase(String name , int vision , int mode , CursorFactory factory);

创建一个新的数据库并返回一个SQLiteDatabase对象


2. SQLiteDatabase mydb = SQLiteDatabase.create(new CurosrFactory(){

    @override

    public Cursor newCursor(SQLiteDatabase db , SQLiteCursorDriver masterQuery , String editTable , SQLiteQuery query)

    {

        return null;

    }

});


3.SQLiteDatabase db = this.openOrCreateDatabase("mydb.db" , MODE_PRIVATE , new CursorFactory(){

    @Override

    public Cursor newCursor(SQLiteDatabase db , SQLiteCursorDriver masterQuery , String editTable , SQLiteQuery query)

    {

         //TODO Auto-generated method stub

        return null;

    }

});


删除数据库

Context.deleteDatabase(String name); //删除指定名字的数据库


打开数据库

Context.openDatabase(String basename , CursorFactory factory);  //打开一个数据库,并返回SQLiteDatabase对象


非查询SQL指令

SQLiteDatabase.execSQLite(String sql);  //可以用来执行非查询的SQL指令,这些指令执行后并没有结果返回.


查询SQL指令,游标Cursors的使用

Cursor cursor = mydb.rawQuery(String sql , String[] selectionArg);  //第一个参数为查询语句 , 第二个参数为查询语句中的占位符 , 若没有占位符 ,则第二个参数为null


0 0
原创粉丝点击