Android SQLite数据库操作教程
"Android SQLite数据库基本操作方法" 在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库,适用于存储结构化的数据。SQLite数据库的使用可以帮助开发者实现对数据的增删改查(CRUD)操作,满足应用程序的各种需求。本教程将通过一个简单示例介绍如何在Android中操作SQLite数据库。 首先,我们需要定义数据库的基本信息。创建一个名为`DatabaseStatic`的Java类,用于保存数据库的名称、版本号以及表的信息。例如: ```java package com.example.databaseHelper; public class DatabaseStatic { public final static String DATABASE_NAME = "BookStore.db"; public final static int DATABASE_VERSION = 1; public final static String TABLE_NAME = "book"; public final static String BOOK_NAME = "bookName"; public final static String ID = "_id"; public final static String AUTHOR = "author"; public final static String PRICE = "price"; public final static String DATE = "sellDate"; } ``` 这里定义了一个名为"BookStore.db"的数据库,版本号为1,一个名为"book"的表,以及表中的字段,包括书名(bookName)、唯一标识(_id)、作者(author)、价格(price)和销售日期(sellDate)。 接下来,我们需要创建一个SQLiteOpenHelper的子类,如`MyHelper`,它会处理数据库的创建和升级: ```java package com.example.databaseHelper; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyHelper extends SQLiteOpenHelper { // 构造函数,传入上下文和DatabaseStatic类 public MyHelper(Context context) { super(context, DatabaseStatic.DATABASE_NAME, null, DatabaseStatic.DATABASE_VERSION); } // 当数据库首次创建时,执行此方法 @Override public void onCreate(SQLiteDatabase db) { String CREATE_TABLE = "CREATE TABLE " + DatabaseStatic.TABLE_NAME + "(" + DatabaseStatic.ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + DatabaseStatic.BOOK_NAME + " TEXT," + DatabaseStatic.AUTHOR + " TEXT," + DatabaseStatic.PRICE + " REAL," + DatabaseStatic.DATE + " TEXT" + ")"; db.execSQL(CREATE_TABLE); } // 当数据库版本升级时,执行此方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 这里可以添加升级数据库的逻辑,比如修改表结构等 db.execSQL("DROP TABLE IF EXISTS " + DatabaseStatic.TABLE_NAME); onCreate(db); } } ``` `MyHelper`类继承自SQLiteOpenHelper,重写了`onCreate()`和`onUpgrade()`方法。`onCreate()`用于创建表,`onUpgrade()`则用于在数据库版本升级时处理相关操作,如在这里选择了删除旧表并重新创建。 现在,我们可以在应用中使用`MyHelper`类来打开、操作数据库。例如,在需要的地方实例化`MyHelper`,并调用其提供的方法: ```java Context context = ...; // 获取上下文 MyHelper dbHelper = new MyHelper(context); SQLiteDatabase db = dbHelper.getWritableDatabase(); // 获取可写数据库 // 插入数据 ContentValues values = new ContentValues(); values.put(DatabaseStatic.BOOK_NAME, "书名"); values.put(DatabaseStatic.AUTHOR, "作者"); values.put(DatabaseStatic.PRICE, 29.99); values.put(DatabaseStatic.DATE, "2022-01-01"); long newRowId = db.insert(DatabaseStatic.TABLE_NAME, null, values); // 查询数据 Cursor cursor = db.query(DatabaseStatic.TABLE_NAME, null, null, null, null, null, null); while (cursor.moveToNext()) { String bookName = cursor.getString(cursor.getColumnIndex(DatabaseStatic.BOOK_NAME)); // 处理查询结果 } // 更新数据 values.put(DatabaseStatic.BOOK_NAME, "新书名"); db.update(DatabaseStatic.TABLE_NAME, values, DatabaseStatic.ID + "=?", new String[]{String.valueOf(newRowId)}); // 删除数据 db.delete(DatabaseStatic.TABLE_NAME, DatabaseStatic.ID + "=?", new String[]{String.valueOf(newRowId)}); ``` 以上代码展示了如何插入、查询、更新和删除数据的基本操作。在实际应用中,你可能需要封装这些操作到单独的方法中,以保持代码的整洁和可维护性。 在Android应用中使用SQLite数据库时,还需注意以下几点: 1. 数据库操作应在主线程之外进行,以免阻塞UI。可以使用AsyncTask或其它异步处理机制。 2. 考虑使用ContentProvider来封装数据库访问,以便与其他应用共享数据。 3. 对于大量数据的操作,考虑使用事务以提高性能和数据一致性。 4. 在数据库升级时,确保正确处理旧数据,避免数据丢失。 5. 使用合适的数据类型和索引优化查询性能。 6. 定期备份数据库,以防意外情况导致数据丢失。 通过以上步骤,你就可以在Android应用中有效地管理和操作SQLite数据库了。这只是一个基础示例,实际项目中可能需要根据具体需求进行更复杂的操作和设计。
下载后可阅读完整内容,剩余9页未读,立即下载
- 粉丝: 14
- 资源: 950
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解