Android SQLite数据库实战教程

0 下载量 40 浏览量 更新于2024-09-03 收藏 75KB PDF 举报
"Android 中SQLite技术实例详解" 在Android开发中,SQLite是一个不可或缺的组件,它是一种轻量级的关系型数据库,特别适合于处理应用程序中的小规模数据存储。SQLite数据库不依赖于任何服务器进程,而是直接集成到应用中,以文件的形式存在,这使得它的使用非常便捷。 一、SQLite数据库概述 SQLite数据库具有以下特点: 1. 轻量级:SQLite数据库设计精简,不需要额外的服务器进程,适合处理少量数据的创建、读取、更新和删除(CURD)操作。 2. 文件本质:SQLite数据库本质上是一个文件,它不需要安装或启动任何服务,只需通过应用程序访问该文件即可进行数据操作。 3. 数据读写:SQLite数据库在运行时打开就像读写文件一样,提供了高效的数据读写能力。 二、SQLite数据库数据类型 SQLite支持五种基本数据类型: 1. NULL:表示空值。 2. INTEGER:整数类型,包括有符号和无符号整数。 3. REAL:浮点数类型,用于存储小数。 4. TEXT:字符串文本类型,用于存储字符数据。 5. BLOB:二进制对象类型,用于存储任意字节序列。 尽管如此,SQLite也允许使用像varchar(n), char(n), decimal(p,s)等传统SQL数据类型,但在实际存储时,它们会被转换为上述五种基础类型。 三、简单SQLite数据库操作实例 在Android中,我们通常使用`SQLiteOpenHelper`类来管理和操作SQLite数据库。以下是一个简单的示例,展示了如何创建数据库、表以及进行数据操作: ```java public class DatabaseHelper extends SQLiteOpenHelper { // 数据库版本号 private static final int DATABASE_VERSION = 1; // 数据库名 private static final String DATABASE_NAME = "MyDatabase.db"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 创建表的SQL语句 String CREATE_TABLE = "CREATE TABLE myTable (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)"; db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 当数据库版本升级时,这里可以执行升级操作,如修改表结构 db.execSQL("DROP TABLE IF EXISTS myTable"); onCreate(db); } } ``` 在上述代码中,我们首先定义了数据库的版本号和名称,然后重写了`onCreate()`方法来创建数据库表。`onUpgrade()`方法用于处理数据库版本升级的情况,这里我们选择在升级时先删除旧表再重新创建。 四、插入、查询、更新和删除数据 一旦数据库和表创建好,我们就可以使用`SQLiteDatabase`对象的方法来执行SQL语句,例如`insert()`, `query()`, `update()`, 和 `delete()`。 1. 插入数据: ```java ContentValues values = new ContentValues(); values.put("name", "John Doe"); values.put("age", 30); getWritableDatabase().insert("myTable", null, values); ``` 2. 查询数据: ```java Cursor cursor = getWritableDatabase().query("myTable", new String[]{"name", "age"}, null, null, null, null, null); while (cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.d("Data", "Name: " + name + ", Age: " + age); } cursor.close(); ``` 3. 更新数据: ```java ContentValues updateValues = new ContentValues(); updateValues.put("age", 31); getWritableDatabase().update("myTable", updateValues, "name=?", new String[]{"John Doe"}); ``` 4. 删除数据: ```java getWritableDatabase().delete("myTable", "name=?", new String[]{"John Doe"}); ``` 五、总结 Android的SQLite数据库提供了一种灵活且高效的方式来存储和管理应用数据。通过使用`SQLiteOpenHelper`,开发者可以方便地创建、升级数据库,以及执行各种SQL操作。在实际项目中,可以根据需求进一步封装这些操作,以提高代码的可读性和复用性。