存储三:SQLite数据库存储

                                    SQLite的的的数据库存储

描述: Android系统内置数据库。

路径: / data / data / <package name> / databases /目录下

创建数据库:

a, SQL语法创建表

创建表书(

create table Book(

id integer primary key autoincrement,

author text,

price real,

pages integer,

name text)

b, SQLiteOpenHelper类:

抽象方法: onCreate(),onUpgrate():通常会在这里处理一下创建表的逻辑。

实例方法: getReadableDatabase(),getWritableDatabase():这两个方法可以创建或打开一个现有的数据库。

一般操作流程:构建出的的SQLite的的实例后,再调用getReadableDatabase()或getWritableDatabase()就能方法创建数据库,此时,重写的的的的onCreate()方法也会执行,通常会在这里处理一下创建表的逻辑。

onCreate()方法创建表:

publc static final String CREATE_BOOK = "create table Book("

+"id integer primary key autoincrement,"

+"author text,"

+"price real,"

+"pages integer,"

+"name text)";

然后在onCreate()进行db.execSQL(CREATE_BOOK);进行创建Book表;

升级数据库:

当在一个之前创建好的数据库添加多一个表格的时候,onCreate()就不会再执行了,所以如果添加其他表时,需要用到onUpgrate()方法。

在onUpgrate()方法执行:

db.execSQL(drop table if exists Book");

db.execSQL(drop table if exists XXX");

onCreate(db);

如何让onUpgrate()得到执行呢?修改SQLiteOpenHelper构造方法的第四个参数====版本号

数据操作:

CRUD                                       SQL语言

C:创建添加---------------------------> insert

R:检索查询--------------------------->选择

U:更新更新--------------------------->更新

D:删除删除--------------------------->删除

2:注:调用SQLiteOpenHelper类的getReadableDatabase()或getWritableDatabase()方法可以创建和升级数据库这两个方法都会返回一个SQliteDatabase对象,借助这个对象就可以对数据进行CRUD操作了。

添加数据:

例:

dbHelper = new MyDatabaseHelper(this,"BooStore.db",null,2);

SQLiteDatabase db = deHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("name","The Vinci");

values.put("author","Dani");

values.put("price",13.99);

db.insert("Book",null,values); //插入第一条数据

values.clear();

//开始组装第二条数据

values.put("name","The Lost");

values.put("author","Dan");

values.put("price",15.99);

db.insert("Book",null,values); //插入第二条数据

更新数据:

例:

SQLiteDatabase db = deHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("price",10.99); //更改价格

db.update("Book",values,"name = ?", new String[] = {"The Vinci"}); //将The Vinci的价格由13.99降价为10.99

删除数据:

SQLiteDatabase db = deHelper.getWritableDatabase();

db.delete("Book","name = ?", new String[] = {"The Vinci"}); //将name为he Vinci的那一行删掉

查询数据:

调用query()方法会返回一个Cursor对象,查询到的所有数据都将从这个对象取出。

例:

SQLiteDatabase db = deHelper.getWritableDatabase();

//查询Book表中所有的数据

Cursor cursor = db.query("Book",null,null,null,null,null,null);

//cursor.moveToFirst()游标移动到第一行的位置。

if(cursor.moveToFirst()){

do{

String name = cursor.getString(cursor.getColumnIndex("name"));

String author = cursor.getString(cursor.getColumnIndex("author"));

int pages = cursor.getInt(cursor.getColumnIndex("pages"));

...

}while(cursor.moveToNext());

}

cursor.close();

猜你喜欢

转载自blog.csdn.net/mangshidai/article/details/81144759