Android数据库存储指南:轻松保存数据到你的应用程序中 (android 保存到数据库中)

在开发Android应用程序时,我们经常需要将数据进行存储并在需要时读取。存储数据的方式有多种,其中比较常见的是使用数据库。本文将介绍如何在Android应用程序中使用数据库存储数据。

1. SQLite数据库简介

SQLite是一种轻量级的数据库引擎,可以嵌入到应用程序中,非常适合移动设备应用程序的本地数据存储。SQLite支持的语法和MySQL相似,可以通过Java的API操作SQLite数据库。

2. 创建数据库

在Android应用程序中创建数据库需要继承Android提供的SQLiteOpenHelper类。SQLiteOpenHelper类提供了两个回调函数,分别是onCreate()和onUpgrade()。onCreate()函数在之一次创建数据库时调用,onUpgrade()函数在数据库版本更新时调用。实际上,在SQLiteOpenHelper的构造函数中会检查数据库版本,如果检测到数据库版本不一致,就会调用onUpgrade()函数。

下面是一个简单的创建数据库的示例:

“`java

public class SQLiteDatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = “mydatabase.db”;

private static final int DATABASE_VERSION = 1;

private static final String CREATE_TABLE_SQL = “CREATE TABLE ” +

“mytable (_id INTEGER PRIMARY KEY, name TEXT)”;

public SQLiteDatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_TABLE_SQL);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

//数据库版本更新时执行的操作

}

}

“`

在这个示例中,我们创建了一个名为”mydatabase.db”的数据库,并且指定了版本号为1。CREATE_TABLE_SQL定义了要创建的表的结构。在onCreate()函数中执行创建表的操作,当之一次创建数据库时调用。

3. 数据存储

在创建好数据库之后,就可以往数据库中存储数据了。Android提供了一个类似于JDBC的API,可以执行SQL语句,插入或删除数据。下面是一个插入数据的示例:

“`java

SQLiteDatabaseHelper helper = new SQLiteDatabaseHelper(context);

SQLiteDatabase db = helper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put(“name”, “John Doe”);

long id = db.insert(“mytable”, null, values);

“`

在这个示例中,我们首先创建了一个SQLiteDatabaseHelper实例,然后调用getWritableDatabase()函数获取可写的数据库对象。接着,我们创建了一个ContentValues对象,设置要插入的数据,最后调用insert()函数将数据插入到表中,并返回插入的行的id。

读取数据也是非常简单的,可以使用rawQuery()函数执行SQL语句并返回一个Cursor对象,通过遍历Cursor对象获取结果集。下面是一个读取数据的示例:

“`java

SQLiteDatabaseHelper helper = new SQLiteDatabaseHelper(context);

SQLiteDatabase db = helper.getReadableDatabase();

String[] projection = {“_id”, “name”};

String selection = “name = ?”;

String[] selectionArgs = {“John Doe”};

String sortOrder = “_id DESC”;

Cursor cursor = db.query(“mytable”, projection,

selection, selectionArgs, null, null, sortOrder);

if (cursor.moveToFirst()) {

do {

long id = cursor.getLong(cursor.getColumnIndex(“_id”));

String name = cursor.getString(cursor.getColumnIndex(“name”));

//处理数据…

} while (cursor.moveToNext());

}

“`

在这个示例中,我们首先创建了一个SQLiteDatabaseHelper实例,然后调用getReadableDatabase()函数获取只读的数据库对象。接着,我们指定了要查询的列和查询条件,指定了结果排序,最后调用query()函数执行查询并返回结果集。通过遍历Cursor对象获取结果集。需要注意的是,Cursor对象需要在使用完毕之后关闭,否则会导致内存泄漏。

4. 数据库版本升级

在应用程序中增加或删除表或者修改表结构时,需要更新数据库版本。数据库版本更新时会调用SQLiteOpenHelper的onUpgrade()函数。下面是一个数据库版本升级的示例:

“`java

public class SQLiteDatabaseHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = “mydatabase.db”;

private static final int OLD_DATABASE_VERSION = 1;

private static final int NEW_DATABASE_VERSION = 2;

private static final String CREATE_TABLE_SQL = “CREATE TABLE ” +

“mytable (_id INTEGER PRIMARY KEY, name TEXT, age INTEGER)”;

public SQLiteDatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, NEW_DATABASE_VERSION);

}

@Override

public void onCreate(SQLiteDatabase db) {

db.execSQL(CREATE_TABLE_SQL);

}

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

if (oldVersion == OLD_DATABASE_VERSION) {

db.execSQL(“ALTER TABLE mytable ADD COLUMN age INTEGER”);

}

}

}

“`

在这个示例中,我们修改了数据库版本号为2,并且在onUpgrade()函数中添加了一个age列。在应用程序升级时,如果数据版本从1升级到2,就会调用这个函数。onUpgrade()函数中调用了ALTER TABLE语句来修改表结构。

5.

本文介绍了在Android应用程序中使用SQLite数据库的方法,包括数据库创建、数据存储、数据读取和数据库版本升级。SQLite是一种轻量级的数据库引擎,非常适合移动设备应用程序的本地数据存储。在实际应用程序中,还可以使用ORM框架来简化数据库操作。


数据运维技术 » Android数据库存储指南:轻松保存数据到你的应用程序中 (android 保存到数据库中)