Android中的数据存取 之 SQLite

1.Android中通过SQLite数据库引擎来实现结构化数据存储。SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备,提供的是一种高效的数据库引擎。

2.Android提供了创建和使用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供更简洁的功能。

3. SQLiteOpenHelper是SQliteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般用法是定义一个类继承之,并实现两个抽象方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)类创建和跟新数据库。

Android中操作数据库首先要通过一个 类:android.database.sqlite.SQLiteOpenHelper。它封装了如何打开一个数据库,其中当然也包含如果数据库不存在 就创建这样的逻辑。

SQLiteOpenHelper 类

其中:

getReadableDatabase()得到可读的数据库,返回SQLiteDatabase对象,然后通过对象进行数据库操作。

getWritableDatabase()得到可写的数据库,返回SQLiteDatabase对象,然后通过对象进行数据库操作。

onCreate(SQLiteDatabase db)在第一次创建数据库时调用。

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)在更改数据库时都会调用。

onOpen(SQLiteDatabase db)当数据库打开时调用。

close()关闭数据库。

看一个例子:

public class SqlLiteHelper extends SQLiteOpenHelper {          public class DatabaseHelper extends SQLiteOpenHelper {                      private static final int VERSION = 1;                         public DatabaseHelper(Context context, String name, CursorFactory factory,                     int version) {                 super(context, name, factory, version);             }                      @Override             public void onCreate(SQLiteDatabase db) {                 System.out.println("create a Database");                 db.execSQL("create table user(id int,name varchar(20))");             }                      @Override             public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {                 System.out.println("update a Database");                 db.execSQL("DROP TABLE IF EXISTS user");           }                  }        }

这里面,如下的语句需要解释:

super(context, DATABASE_NAME, null, DATABASE_VERSION)

数据库连接的初始化,中间的那个null,是一个CursorFactory参数,没有仔细研究这个参数,暂时置空吧。

public void onCreate(SQLiteDatabase db)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyxsdd.html