Android SQLite数据库实例操作详解
43 浏览量
更新于2024-09-01
收藏 69KB PDF 举报
在Android开发中,SQLite数据库是一种广泛使用的轻量级数据库管理系统,由于其内嵌于Android系统,使得开发者无需额外安装即可在应用中实现数据存储和管理。本文将通过一个简单的实例,深入讲解如何在Android应用中利用SQLiteDatabase类进行数据库操作。
首先,我们介绍SQLiteDatabase类的几个关键静态方法,它们分别是:
1. `openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flag)`: 这个方法用于打开已存在的数据库文件,参数`path`是数据库文件的路径,`CursorFactory`是一个创建Cursor对象的工厂,`flag`控制了数据库的行为,如是否允许异步写入(通常使用`SQLiteDatabase.OPEN_READWRITE`)。
2. `openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)` 和 `openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)`:如果指定的数据库文件不存在,则会创建一个新的数据库,之后再打开。这两个方法的区别在于一个接收File对象,另一个接收字符串路径。
3. `execSQL(String sql, Object[] bindArgs)` 和 `execSQL(String sql)`:执行SQL命令,第一个方法允许传入绑定参数,用于动态SQL,第二个方法则不支持参数绑定。这些方法用于执行插入、更新、删除或修改数据库的操作。
4. `rawQuery(String sql, String[] selectionArgs)`:执行SQL查询并返回Cursor,这个方法用于获取数据,与JDBC中的`executeQuery()`类似,但返回的是Cursor,而不是PreparedStatement。
5. `beginTransaction()` 和 `endTransaction()`:用于进行数据库事务管理,通过这两个方法可以确保一系列SQL操作要么全部成功,要么全部回滚,提供了数据一致性保障。
接下来,我们将通过一个实际的`main.xml`布局文件示例来演示如何在Android中创建数据库表并执行CRUD操作:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
<!-- ... -->
<Button
android:id="@+id/btnInsert"
android:text="插入数据"
android:onClick="onInsertBtnClick" />
<Button
android:id="@+id/btnSelect"
android:text="查询数据"
android:onClick="onSelectBtnClick" />
<!-- ... -->
</LinearLayout>
```
在对应的Activity或Fragment中,你可以编写如下的Java代码来实现这些功能:
```java
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openOrCreateDatabase("myDatabase.db", null, Context.MODE_PRIVATE);
// 插入数据
ContentValues contentValues = new ContentValues();
contentValues.put("column1", "value1");
db.execSQL("INSERT INTO myTable (column1) VALUES (?)", contentValues.toArray(new String[]{}));
// 查询数据
Cursor cursor = db.rawQuery("SELECT * FROM myTable", null);
if (cursor.moveToFirst()) {
do {
String data = cursor.getString(cursor.getColumnIndex("column1"));
Log.d("Data", data);
} while (cursor.moveToNext());
}
cursor.close();
// 事务管理
db.beginTransaction();
db.execSQL("UPDATE myTable SET column1='newValue' WHERE id=1");
db.setTransactionSuccessful();
db.endTransaction();
} finally {
if (db != null && !db.isClosed()) {
db.close();
}
}
```
通过这个实例,你将学习到如何在Android应用程序中使用SQLiteDatabase进行数据库操作,包括表的创建、数据插入、查询以及事务管理。这是一基础且实用的知识,对于构建Android应用中的数据持久化功能至关重要。
2017-03-23 上传
2021-01-05 上传
2014-06-07 上传
2020-09-04 上传
2012-02-28 上传
179 浏览量
2011-12-20 上传
2022-05-17 上传
2023-04-30 上传
weixin_38557757
- 粉丝: 5
- 资源: 934
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库