SQLite 数据库功能非常强大,使用起来也非常方便,SQLite数据库的一般操作包括:创建数据库、打开数据库、创建表、向表中添加数据、从表中删除数据、修改表中的数据、关闭数据库、删除指定表、删除数据库和查询表中的某条数据。下面我们分别来学习这些基本操作。
1.创建和打开数据库
在Android 中创建和打开一个数据库都可以使用openOrCreateDatabase 方法来实现,因为它会自动去检测是否存在这个数据库,如果存在则打开,不过不存在则创建一个数据库;创建成功则返回一个 SQLiteDatabase对象,否则抛出异常FileNotFoundException。下面我们来创建一个名为"Examples_06_05.db"的数据库,并返回一个SQLiteDatabase对象 mSQLiteDatabase。
mSQLiteDatabase = this.openOrCreateDatabase("Example_06_05.db", MODE_PRIVATE, null);
2.创建表
一个数据库中可以包含多个表,我们的每一条数据都保存在一个指定的表中,要创建表可以通过execSQL 方法来执行一条SQL语句。execSQL能够执行大部分的SQL语句,下面我们来创建一个名为table1 且包含3个字段的表。 具体代码如下:
String CREATE_TABLE = "CREATE TABLE table1 (_id INTEGER PRIMARY KEY, num INTEGER, data TEXT)";
mSQLiteDatabase.execSQL(CREATE_TABLE);
3.向表中添加一条数据
可以使用insert 方法来添加数据,但是 insert 方法要求把数据都打包到 ContentValues 中, ContentValues 其实就是一个Map, key值是字段名称, Value值是字段的值。通过 ContentValues 的 put 方法就可以把数据放到ContentValues中,然后插入到表中去。具体实现如下:
ContentValues cv = new ContentValues();
cv.put(TABLE_NUM, 1);
cv.put(TABLE_DATA, "测试数据");
mSQLiteDatabase.insert(TABLE_NAME, null, cv);
//这样同样可以使用execSQL方法来执行一条“插入”的SQL语句,代码如下:
String INSERT_DATA = "INSERT INTO table1 (_id, num, data) values (1, 1, '通过SQL语句插入')" ;
mSQLiteDatabase.execSQL(INSERT_DATA);
4.从表中删除数据
要删除数据可以使用delete 方法,下面我们删除字段 "_id" 等于1的数据,具体代码如下:
mSQLiteDatabase.delete("Examples_06_05.db", " where_id="+0, null);
通过 execSQL方法执行SQL语句删除数据如下:
String DELETE_DATA = "DELETE FROM table1 WHERE _id=1";
mSQLiteDatabase.execSQL(DELETE_DATA);
5.修改表中的数据
如果添加了数据后发现数据有误,这时需要修改这个数据,可以使用updata方法来更新一条数据。下面我们来修改 "num" 值为0的数据,具体代码如下:
ContentValues cv = new ContentValues();
cv.put(TABLE_NUM, 3);
cv.put(TABLE_DATA, "修改后的数据");
mSQLiteDatabase.update("table1" cv, "num " + "=" + Integer.toString(0), null);
6.关闭数据库
关闭数据库很重要,也是大家经常容易忘记的。关闭的方法很简单,直接使用SQLiteDatabase 的 close 方法。具体代码如下:
mSQLiteDatabase.close();
7.删除指定表
这里我们使用execSQL方法来实现,具体代码如下:
mSQLiteDatabase.execSQL("DROP TABLE table1");
8.删除数据库
要删除一个数据库,直接使用deleteDatabase 方法即可,具体代码如下:
this.deleteDatabase("Examples_06_05.db");
9.查询表中的某条数据
在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor指向的就是每一条数据。它提供了很多有关查询的方法,具体方法如下:
方法 说明
move 以当前的位置为参考,将Cursor移动到指定的位置,成功返回true, 失败返回false
moveToPosition 将Cursor移动到指定的位置,成功返回true,失败返回false
moveToNext 将Cursor向前移动一个位置,成功返回true,失败返回false
moveToLast 将Cursor向后移动一个位置,成功返回true,失败返回 false。
movetoFirst 将Cursor移动到第一行,成功返回true,失败返回false
isBeforeFirst 返回Cursor是否指向第一项数据之前
isAfterLast 返回Cursor是否指向最后一项数据之后
isClosed 返回Cursor是否关闭
isFirst 返回Cursor是否指向第一项数据
isLast 返回Cursor是否指向最后一项数据
isNull 返回指定位置的值是否为null
getCount 返回总的数据项数
getInt 返回当前行中指定的索引数据
下面我们就是用Cursor来查询数据库中的数据,具体代码如下:
Cursor cur = mSQLiteDatabase.rawQuery("SELECT * FROM table", null);
if( cur != null ){
if( cur.moveToFirst() ){
do{
int numColumn = cur.getColumnIndex("num");
int num = cur.getInt(numColumn);
}while( cur.moveToNext());
}
}
最后在提醒大家一句:
使用SQLiteDatabase数据库要及时关闭(close), 否则可能会抛出SQLiteException异常。
分享到:
相关推荐
SQLite是一个遵循ACID原则的关联式数据库管理系统,特别适合嵌入式应用,因为它占用资源极低,可以在各种主流操作系统如Windows、Linux、Unix上运行,并且与多种编程语言(如Tcl、PHP、Java、C++、.Net等)兼容。...
总结来说,“Android 4.0 网络编程详解”这篇文档可能详细介绍了Android 4.0版本的网络API使用方法、网络通信的最佳实践、网络编程中常见的问题和解决方案等。献给所有对技术抱有好奇心和热情的软件工程师们,意味着...
《Android基于SQLite的学生信息管理系统详解》 在信息技术日益发达的今天,信息管理系统的应用已经渗透到各个领域。本文将深入探讨一个特别针对学生信息管理的系统——“Android基于SQLite的学生信息管理系统”。该...
总之,"Android创意实例详解书籍源码"是一个宝贵的教育资源,通过研究这些源码,开发者不仅可以学习到具体的编程技巧,还能培养解决问题的思维方式,提高自己的编程水平。同时,这些实例也可以作为项目开发的灵感...
Android应用的数据存储也是重点,包括SQLite数据库的使用、SharedPreferences进行轻量级数据存储,以及使用File I/O操作本地文件。这些技术有助于管理和持久化应用数据。 书中还将涵盖网络编程,讲解如何使用...
这些只是Android应用开发的部分知识点,通过《Android应用开发详解》的源码学习,你可以深入理解每个概念的实际应用,同时还能看到作者如何解决实际问题,提升自己的编程技巧。在实践中不断探索和学习,才能真正成为...
《Android 4.0 网络编程详解代码》是一本深入探讨Android应用程序开发中网络编程技术的专业书籍。它旨在帮助开发者掌握各种网络通信技术,包括基础的HTTP协议、XML和JSON数据解析以及低级的Socket编程。这些知识点在...
根据提供的标题“Android应用开发详解.pdf”以及描述“Android应用开发详解.pdf”,我们可以推断这份文档主要涵盖了关于Android平台上的应用程序开发的相关知识和技术。虽然提供的部分内容似乎并不包含具体的信息,...
6. **数据存储**:Android提供了多种数据存储方式,如Shared Preferences、SQLite数据库、文件系统和ContentProvider。书中会详细讲解每种方式的适用场景及使用方法。 7. **网络通信**:网络编程是Android应用开发...
《Android应用开发详解2010版》是针对早期Android平台的一份详尽教程,旨在帮助开发者深入理解和实践Android应用程序的开发。这份资料的核心内容涵盖了Android应用开发的基础知识、核心概念以及当时的最新技术。 ...
本资源提供了"android4 网络编程详解 源代码",旨在帮助开发者深入理解Android 4.x系统下的网络通信机制,并通过源代码学习实际应用。 网络编程在Android中主要涉及以下知识点: 1. **HTTP通信**:Android使用...
6. **数据存储**:Android提供了多种数据存储方式,如SQLite数据库、SharedPreferences、文件系统以及ContentProvider,以满足不同场景的数据存储需求。 7. **服务(Service)**:服务是后台运行的组件,不与用户...
Android应用的核心编程语言是Java,但随着Kotlin的普及,书中也可能涵盖了Kotlin的基础和进阶特性,如协程(Coroutines)用于异步编程,数据类(Data Class)简化对象创建,以及扩展函数和高阶函数等。此外,Android...
《Android应用开发详解》是郭宏志先生撰写的一本深入探讨Android应用开发的书籍,它为读者提供了全面、详实的Android开发知识。通过这本书,开发者可以了解到Android平台的架构、核心组件以及如何构建功能丰富的应用...
5. **数据存储**:Android提供了多种数据存储方式,如SharedPreferences用于轻量级的键值对存储,SQLite数据库用于结构化的数据存储,以及文件系统和ContentProvider等,开发者需根据需求选择合适的方式。...
在数据存储方面,Android提供了SQLite数据库、SharedPreferences、文件存储以及ContentProvider等多种方式,开发者应根据需求选择合适的方法。 网络编程在移动应用中常见,Android支持HTTP请求,可以使用...
《Android应用开发详解教材源码(上册)》是一本深度剖析Android应用开发的教材,包含10个单元,涵盖了40多个实例源码,旨在帮助开发者深入理解Android平台的编程原理与实践技巧。这份资源对于初学者和有一定经验的...
根据提供的信息,“Android应用开发详解”这本书被描述为非常适合初学者的一本书籍,也是某位读者接触到的第一本关于Android开发的书籍。从标题和描述中我们可以推断出这本书主要介绍了Android应用开发的基础知识...