Android SQLite数据库操作详解:创建、插入与更新
需积分: 9 122 浏览量
更新于2024-09-10
收藏 181KB DOC 举报
"关于Android应用中使用SQLite数据库的基本操作"
在Android开发中,SQLite是一个轻量级的数据库系统,用于存储和管理应用程序的数据。SQLite数据库提供了一种高效且可靠的方式来处理数据,特别适合移动设备。在Android中,我们可以通过SQLiteOpenHelper类及其子类来创建、升级和管理数据库。以下是使用SQLite进行基本操作的详细步骤和注意事项:
1. 创建数据库
要创建一个SQLite数据库,你需要继承SQLiteOpenHelper类并重写它的`onCreate()`方法。在这个方法中,你可以编写SQL语句来创建表。例如:
```java
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_TEXT + " TEXT, " +
COLUMN_TEXT_2 + " TEXT)";
db.execSQL(sql);
}
```
其中,`TABLE_NAME`是表的名称,`COLUMN_ID`、`COLUMN_TEXT`和`COLUMN_TEXT_2`是表中的字段名,`INTEGER PRIMARY KEY AUTOINCREMENT`定义了一个自动递增的主键。
2. 打开和关闭数据库
可以通过调用`getWritableDatabase()`或`getReadableDatabase()`方法来获取对数据库的写入或只读权限。例如:
```java
SQLiteDatabase db = this.getWritableDatabase();
// 使用完毕后记得关闭
db.close();
```
3. 插入数据
Android提供了`insert()`方法来方便地插入数据。首先,你需要创建一个`ContentValues`对象来存储要插入的键值对:
```java
ContentValues values = new ContentValues();
values.put(COLUMN_TEXT, "数据1");
values.put(COLUMN_TEXT_2, "数据2");
long newRowId = db.insert(TABLE_NAME, null, values);
```
`insert()`方法返回新插入行的ID,如果失败则返回-1。
4. 查询数据
使用`query()`方法进行查询,可以根据需要传递不同的参数,比如指定要查询的列、条件等:
```java
Cursor cursor = db.query(TABLE_NAME, new String[]{COLUMN_ID, COLUMN_TEXT}, null, null, null, null, null);
// 遍历结果
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex(COLUMN_ID));
String text = cursor.getString(cursor.getColumnIndex(COLUMN_TEXT));
// 处理数据
}
// 关闭游标
cursor.close();
```
5. 更新数据
更新数据使用`update()`方法,同样需要一个`ContentValues`对象来存储新的键值对,以及一个WHERE子句来指定要更新的行:
```java
ContentValues updateValues = new ContentValues();
updateValues.put(COLUMN_TEXT, "新数据1");
int updatedRows = db.update(TABLE_NAME, updateValues, COLUMN_ID + " = ?", new String[]{"1"});
```
`update()`方法返回被更新的行数。
6. 删除数据
删除数据使用`delete()`方法,需要一个WHERE子句来指定要删除的行:
```java
int deletedRows = db.delete(TABLE_NAME, COLUMN_ID + " = ?", new String[]{"1"});
```
7. 自定义SQL操作
如果需要执行更复杂的SQL语句,可以使用`execSQL()`方法:
```java
String sql = "DELETE FROM " + TABLE_NAME + " WHERE " + COLUMN_ID + " = ?";
db.execSQL(sql, new String[]{"1"});
```
8. 事务处理
对于一组需要原子性执行的操作,可以使用SQLite的事务功能:
```java
db.beginTransaction();
try {
// 执行一系列操作
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
```
9. 主键和自动递增
主键(`PRIMARY KEY`)通常命名为`_id`,但并非强制要求。如果省略,数据库会默认创建一个名为`_id`的主键。主键字段加上`AUTOINCREMENT`属性,会在每次插入新行时自动递增。
Android中的SQLite数据库操作提供了丰富的API,既可以使用预定义的方法,也可以直接执行SQL语句,满足不同层次开发者的需求。正确理解和运用这些知识,能够帮助你有效地管理应用程序的数据存储。
2012-10-06 上传
2013-09-11 上传
2019-03-21 上传
2023-04-11 上传
2023-04-27 上传
2023-05-22 上传
2023-03-16 上传
2023-03-16 上传
2023-03-16 上传
baidu_20790733
- 粉丝: 0
- 资源: 1
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜