android SQLite编程详解

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());
}
}


最后在提醒大家一句:[color=red] 使用SQLiteDatabase数据库要及时关闭(close), 否则可能会抛出SQLiteException异常。[/color]
使用Android中SQLite表进行全文搜索编程 通过使用上述步骤,您可以在Android应用程序中使用SQLite表进行全文搜索编程。首先,我们创建了一个包含文本内容的SQLite表。接下来,我们编写了一个执行全文搜索的方法,并在需要的时候调用它。在某些情况下,我们可能需要在SQLite表中执行全文搜索,以便更有效地查找和过滤数据。首先,我们需要创建一个SQLite数据库,并在其中创建一个表来存储我们的数据。接下来,我们需要向表中插入一些数据,以便后续进行全文搜索。现在,我们已经准备好在SQLite表中执行全文搜索了。在上述代码中,我们创建了一个名为。 阅读详情

相关推荐

065集-Android中SQLite编程-数据的插入

065集-Android中SQLite编程-数据的插入视频教程,个人感觉还可以,共享给大家。

Android SQLite数据库创建和使用实战(一)

转载地址:http://blog.csdn.net/yanbober/article/details/20688273 Android SQLiteSQLiteOpenHelper数据库databasecursor 废话不多说,Android撑死算个入门选手,刚好有点时间,随之倒腾整理下Android数据库操作。码农只需要代码和原理,理论从代码中自己感悟。小二,上代码,弄。

qq_20816947的博客 830

别再混淆了!一张图看懂SAP特殊采购类30/40/70/80的区别与选型指南

本文深度解析SAP特殊采购类30/40/70/80的核心逻辑与业务影响,通过对比框架和真实案例帮助用户掌握其适用边界。重点介绍委外加工(类型30)、工厂间转移(类型40/70)及计划与执行分离(类型80)的配置要点与常见问题,提供选型决策树和实施检查清单,助力企业优化供应链管理。

weixin_26938645的博客 455

安卓中SQLite数据库的创建、增删改查

SQLite是AndroidSDK自带的数据库,微型,轻量,占用资源低; 除了使用自身的 insert、update 、delete等还可以使用execSQL这种嵌入SQL语法进行数据库操作; import android.database.sqlite.SQLiteBDatabase; import android.database.sqlite.SQLiteOpenHelper; public calss MyDatabase extendsSQLiteOpenHelper /*定义数...

ysuwzk的博客 460

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

[官方培训]07-UE材质基础 孙丹璐 Epic 笔记

勾选允许自定义深度写入再在模型上勾选然后可以通过Scene Texture节点拿到渲染的自定义深度信息,有了自定义深度信息就可以与当前渲染的像素深度进行对比,自定义深度信息存放的是最靠近我们的深度,如果当前像素离自定义深度比较远我们就不要这个像素。效果如下这种方案的缺点也很明显,因为这样看不到第二层的透明了,如果是两层的半透明的裙摆,这样就看不到第二层的裙摆了。对于半透明排序问题最根本能解决的还是光线追踪,ue5中又加入了OIT(基于像素的排序)。官方透明材质的理解和应用。

Tcohneyn的博客 1562

android sqlite 数据库创建,在android中创建SQLite数据库

好的例子是here。try {myDB = this.openOrCreateDatabase("DatabaseName", MODE_PRIVATE, null);/* Create a Table in the Database. */myDB.execSQL("CREATE TABLE IF NOT EXISTS "+ TableName+ " (Field1 VARCHAR, Field...

weixin_29737207的博客 561

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

Android 使用SQLite数据库

Android 往SQLite数据库中存放类,更简单的使用数据库存储功能

qq_38174131的博客 6525

基于深度学习的X光安检危险品检测系统(YOLOv8 + UI界面 + 数据集)

随着全球安全形势的变化,机场、车站、地铁等场所的安检工作日益重要。X光安检系统已经成为现代公共安全领域中不可或缺的部分,能够有效地检测物品的内部结构,识别潜在的危险品。然而,传统的X光图像分析方法仍然依赖人工操作,检测效率较低,并且易受到人为因素的影响。近年来,深度学习技术的应用在图像分析领域取得了显著的突破,特别是在目标检测任务中,YOLO(You Only Look Once)模型因其高效性和精度,成为了许多目标检测任务的首选模型。

YOLO 1061

YOLO11全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 562

Android_SqLite数据库的创建与使用

一:数据库的创建:DBHelperpublic class DBHelper extends SQLiteOpenHelper { private static final int VERSION = 1; private static String DB_NAME = "_name.db"; private String CREATE_TABLE_PERSONS...

码农曾的博客 557

YOLOv5改进之---EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU

本文主要针对yolov5的iou损失函数进行改进,主要涵盖EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU这几种损失

qq_41920323的博客 1466

安卓编程 Sqlite的入门编程

安卓编程 Sqlite的入门编程 介绍 sqlite: 关系型数据库 (特点:轻量小型) 只占几百k的内存 mysql等数据库强在其并发性,本地安卓编程用sqlite足以 入门 使用SQLiteOpenHelper打开已存在的数据库 需要改写这个类来实现建表,更新等操作 对于表中的数据,可以使用插件SQLiteExpertPersSetup来查看.效果类似于mysql的workbench SQLiteOpenHelper类的创建 构造参数 context : 如 MainActivity.this na

Weary_PJ的博客 1416

数字孪生通信层开发:C#实现OPC UA到Unity3D的实时数据映射(2026年工业级实战指南)

(西门子数字孪生总监):“在产线上,50ms的延迟意味着1%的设备误操作率。2026年,通信层不是‘工具’,是数字孪生的‘生命线’。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 182

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

安卓SQLite数据库编程

SQLite数据库编程 (1)在MainActivity所在的包里,新建名为DbHelper的SQLite数据库打开助手类 public class DbHelper extends SQLiteOpenHelper { public static final String TB_NAME = "friends"; //表名 //构造方法:第1参数为上下文,第2参数库库名,第3...

summerqiao的博客 324

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android Sqlite数据库编程示例

SQLite简介: SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java、C++、.Net等,还有ODBC接口,同样比起Mysql...

希哈科技 543

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android开发之SQLite数据库编程

这篇文章主要介绍 在安卓应用中通过SQLite数据库编程的方式,实现对姓名和年龄的增删改操作 以下是详细代码 1、首先在activity_main.xml中设计界面,下面是源代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/r...

qq_44669390的博客 864

android删除数据方法,如何以编程方式从Android删除SQLite数据库

我想以编程方式从Android file system删除数据库文件吗? 我可以启动Shell脚本启动adb,然后依次在Android空间中运行Shell脚本来删除数据库吗? 我可以在JUnit测试用例(通过system()调用)中完成此操作吗?如何在Android中删除整个数据库? 我需要解决整个问题,以便测试数据库的创建。 我可以放桌子,但这还不够。 这是在模拟器中,而不是在电话中。有了Con...

weixin_42116672的博客 1348

安卓编程基础——使用SQLite数据库

无论是安卓应用还是苹果应用,都提供了本地轻量级数据库——SQLite,可以创建和删除数据库,还能对数据表进行增删改查操作。

lovepanyuxiao的博客 639

Android 数据库编程SQLite实现学生信息管理应用

Android 数据库编程SQLite 一、实验目的 1.掌握SQLite的使用方法; 2.实现一个可以进行简单信息管理的Android应用; 二、实验要求 1.构建应用界面布局; 2.利用SQLite构建数据库交互组件; 3.实现学生信息管理应用; 4.独立完成实验内容,完成实验报告。 三、实验内容 1. 构建应用界面布局 (1)新建一个安卓工程,在默认的layout主界面中添加一个列表(ListView),列表绑定一个SimpleAdapter关联学生信息(学号、姓名)。 (2)为ListView添加上

Pistachiout的学习博客 6486

基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解

Android编程之SQLite数据库操作方法详解发布时间:2020-09-07 12:33:04来源:脚本之家阅读:85作者:低调小一本文实例讲述了Android SQLite数据库操作方法。分享给大家供大家参考,具体如下:SQLite and AndroidSQLite简介SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能。此外,它还是开源的,任何人...

weixin_39663933的博客 371

安卓数据库编程之Sqlite

对于重复或者是结构化的数据把他们保存在数据库当中是十分理想的,如通讯录的联系人等。实现一个合同类创建Sqlite数据库的第一步就是实现一个合同类 ,所谓合同类就是我们将数据库的表名,以及列的名字都放在一个类文件当中。假如说们创建一个student表,其中有学号以及姓名这两列。代码如下

任锦明 593

Android数据库编程SQLite详解

参考:[url]http://www.ataaw.com/?p=322[/url] 程序开发离不开数据库,数据库作为一种不可或缺的存储技术,同样的,在Android中也为我们提供了数据库支持,使用的是SQLite数据库系统。 SQLite是一种轻型数据库系统,并以嵌入式为设计目标,占用资源低,因此作为手机操作系统优秀的数据库系统选择平台。 SQLite的使用涉及两个重要的类,一个...

pyzheng的专栏 202

android开发上传文字到mysql_android编程实现添加文本内容到sqlite表中的方法

这篇文章主要介绍了android编程实现添加文本内容到sqlite表中的方法,结合实例较为详细的分析了Android针对txt文本文件的读取及SQL数据库操作的相关技巧,需要的朋友可以参考下本文实例讲述了android编程实现添加文本内容到sqlite表中的方法。分享给大家供大家参考,具体如下:第一步: 创建表CREATE TABLE DLION (_id INTEGER PRIMARY KEY...

weixin_29531177的博客 253

Android编程之SQLite补充

SQLite常用的写法,我就不提了,这里主要是补充一个当数据库更新的时候,需要增加列的时候的写法: 举例来说:在user表中,增加性别一列,默认1为男,0为女,那么写法为: alter table user add sex bit default 1 如果不需要默认值的话,就把default 1去掉即可,但如果查询新增加列的话,之前的已有数据的该列就会为null,这点要注意一下。

xyz_fly的专栏 1654
上一篇: 文件输入流 FileInputStream
下一篇: android SQLite数据库基本操作示例
xiaohang333
博客等级 码龄17年 3粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值