Android开发:SQLite数据库详解与应用示例

需积分: 10 0 下载量 59 浏览量 更新于2024-09-13 收藏 371KB PDF 举报
"Android SQLite 使用详解及示例代码" 在Android应用开发中,SQLite是一个不可或缺的数据存储解决方案。SQLite是一个开源的、轻量级的关系型数据库,适用于嵌入式环境,如移动设备上的Android系统。它的主要特点包括轻量级、独立性、隔离性、跨平台、多语言接口以及安全性。 1. 轻量级:SQLite数据库只需一个动态库,体积小巧,适合资源有限的设备。 2. 独立性:SQLite无需额外的软件支持,直接运行在操作系统之上,便于集成。 3. 隔离性:所有数据库内容存储在一个文件中,便于管理和迁移。 4. 跨平台:SQLite广泛支持各种操作系统,包括Android在内的多种移动操作系统。 5. 多语言接口:SQLite提供多种编程语言的API,便于不同语言环境下的开发。 6. 安全性:SQLite支持事务处理,通过独占性和共享锁机制保证了数据的一致性和完整性。 在Android中,通常通过继承`SQLiteOpenHelper`类来操作SQLite数据库。以下是一个简单的`dbHelper`类示例: ```java package com.terry; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; public class dbHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "sec_db"; private static final int DATABASE_VERSION = 1; // 表定义 private static final String TABLE_NAME = "my_table"; private static final String COLUMN_ID = "_id"; private static final String COLUMN_NAME = "name"; private static final String COLUMN_AGE = "age"; public dbHelper(Context context, String name, CursorFactory factory, int version) { super(context, DATABASE_NAME, factory, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_NAME + " TEXT," + COLUMN_AGE + " INTEGER" + ")"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } // 插入数据 public void insertData(String name, int age) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COLUMN_NAME, name); contentValues.put(COLUMN_AGE, age); db.insert(TABLE_NAME, null, contentValues); db.close(); } // 查询数据 public Cursor getAllData() { SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery("SELECT * FROM " + TABLE_NAME, null); return res; } // 更新数据 public boolean updateData(String name, int age, int id) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(COLUMN_NAME, name); contentValues.put(COLUMN_AGE, age); db.update(TABLE_NAME, contentValues, COLUMN_ID + " = ? ", new String[]{String.valueOf(id)}); return true; } // 删除数据 public Integer deleteData(int id) { SQLiteDatabase db = this.getWritableDatabase(); return db.delete(TABLE_NAME, COLUMN_ID + " = ? ", new String[]{String.valueOf(id)}); } } ``` 在这个示例中,`dbHelper`类创建了一个名为`sec_db`的数据库,并在`onCreate()`方法中定义了一个名为`my_table`的表,包含三个字段:`_id`(主键)、`name`和`age`。提供了插入、查询、更新和删除数据的方法。 使用这个`dbHelper`类,开发者可以方便地进行数据库操作,例如: - 插入数据:调用`insertData()`方法,传入姓名和年龄即可。 - 查询数据:调用`getAllData()`方法,返回一个`Cursor`对象,可以通过遍历`Cursor`获取所有记录。 - 更新数据:调用`updateData()`方法,传入新姓名、新年龄和要更新的记录ID。 - 删除数据:调用`deleteData()`方法,传入要删除的记录ID。 在实际开发中,可以根据需求扩展这个类,添加更多的表和复杂查询,以满足应用程序的存储需求。同时,`SQLiteOpenHelper`的`onUpgrade()`方法用于在数据库升级时处理旧数据结构的变化,确保数据迁移的平滑进行。 SQLite为Android应用提供了一种高效、便捷的本地数据存储方式,通过`SQLiteOpenHelper`类的使用,开发者可以轻松管理数据库,进行数据操作,从而实现功能丰富的应用程序。