Android应用开发:SQLite数据库操作详解
154 浏览量
更新于2024-09-03
收藏 192KB PDF 举报
"Android中SQLite使用方法详解"
在Android开发中,SQLite是一个轻量级的数据库系统,被广泛用于存储和管理应用程序的数据。由于其体积小、功能强大且无需单独的服务器进程,SQLite成为移动设备理想的数据库解决方案。Android系统内建了SQLite的API,使得开发者能够方便地进行数据库操作。下面我们将详细探讨如何在Android中使用SQLite。
首先,我们需要打开或创建一个SQLite数据库。在`onCreate`方法中,可以通过`openOrCreateDatabase()`函数来实现。这个函数接受三个参数:数据库名称、模式(通常为`Context.MODE_PRIVATE`,表示私有模式)以及一个可选的`SQLiteDatabase.CursorFactory`实例,这里传入`null`表示使用默认工厂。例如:
```java
SQLiteDatabasedb=openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null);
```
接下来,我们需要创建数据库表。通过`execSQL()`方法执行SQL语句,如创建表:
```java
db.execSQL("DROPTABLEIFEXISTSperson");
db.execSQL("CREATETABLEperson(_idINTEGERPRIMARYKEYAUTOINCREMENT,nameVARCHAR,ageSMALLINT)");
```
这些语句分别用于删除已存在的`person`表(如果存在的话)以及创建一个新的`person`表,包含`_id`(主键,自动增长)、`name`(字符串类型)和`age`(小型整数)三列。
插入数据有两种方式:直接使用`execSQL()`执行SQL语句,或者使用`ContentValues`对象。
1. 直接插入SQL语句:
```java
Personperson=newPerson();
person.name="john";
person.age=30;
db.execSQL("INSERTINTOpersonVALUES(NULL,?,?)", new Object[]{person.name, person.age});
```
这里,我们先创建了一个`Person`对象并设置了属性,然后使用`?`作为占位符,配合`Object[]`参数执行插入操作。
2. 使用`ContentValues`:
```java
person.name="david";
person.age=33;
ContentValuescv=newContentValues();
cv.put("name", person.name);
cv.put("age", person.age);
db.insert("person", null, cv);
```
`ContentValues`允许我们以键值对的方式存储数据,然后通过`insert()`方法将它们插入到指定的表中。
此外,我们还可以通过`query()`, `update()`, `delete()`等方法来查询、更新和删除数据。例如,查询所有`person`表中的数据:
```java
Cursorcursor=db.query("person", null, null, null, null, null, null);
while(cursor.moveToNext()){
Stringname=cursor.getString(cursor.getColumnIndex("name"));
intage=cursor.getInt(cursor.getColumnIndex("age"));
//处理查询结果...
}
cursor.close();
```
以上就是Android中SQLite的基本使用方法。通过这些API,开发者可以方便地进行数据的存取操作,满足应用程序的数据管理需求。在实际开发中,通常还会封装成一个数据库帮助类,以提供更友好的接口和更复杂的操作支持。
2015-11-19 上传
2024-07-15 上传
2023-06-28 上传
2023-05-19 上传
2023-03-16 上传
2024-05-20 上传
2023-06-28 上传
2023-05-30 上传
2023-06-07 上传
weixin_38739164
- 粉丝: 8
- 资源: 951
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构