2.2 SQLite数据库的增删改查和事务

使用 SQLite 数据库实现简单的数据管理系统 本项目的目的是利用 SQLite 数据库构建一个简单的数据管理系统。SQLite 是一种轻量级的嵌入式数据库,无需单独的服务器进程,非常适合小型应用程序。本数据管理系统将涵盖基本的数据操作,如数据的插入、查询、更新和删除,适用于需要对少量数据进行简单管理的场景,例如个人信息管理、小型业务数据记录等。本文将首先介绍 SQLite 的核心概念和相关联系,包括其架构和工作原理。接着详细讲解使用 Python 操作 SQLite 数据库的核心算法原理和具体步骤。 阅读详情

点此进入:从零快速构建APP系列目录导图
点此进入:UI编程系列目录导图
点此进入:四大组件系列目录导图
点此进入:数据网络和线程系列目录导图
本节例程下载地址:WillFlowDatabast

通过上一篇我们已经掌握了创建和升级数据库的方法,接下来就该学习一下如何对表中的数据进行操作了。其实我们可以对数据进行的操作也就无非四种,即 CRUD。其中 C 代表添加( Create), R 代表查询( Retrieve), U 代表更新( Update), D 代表删除( Delete)。每一种操作又各自对应了一种 SQL 命令,如果你比较熟悉 SQL 语言的话,一定会知道添加数据时使用 insert,查询数据时使用 select,更新数据时使用 update,删除数据时使用 delete。但是开发者的水平总会是参差不齐的,未必每一个人都能非常熟悉地使用 SQL 语言,因此 Android也是提供了一系列的辅助性方法,使得在 Android 中即使不去编写 SQL 语句,也能轻松完成所有的 CRUD 操作。

通过前面的学习我们已经知道,调用 SQLiteOpenHelper 的 getReadableDatabase() 或 getWritableDatabase() 方法是可以用于创建和升级数据库的,不仅如此,这两个方法还都会返回一个 SQLiteDatabase 对象,借助这个对象就可以对数据进行 CRUD 操作了。

一、添加数据

首先学习一下如何向数据库的表中添加数据。SQLiteDatabase 中提供了一个 insert() 方法,这个方法就是专门用于添加数据的。它接收三个参数,第一个参数是表名,我们希望向哪张表里添加数据,这里就传入该表的名字。第二个参数用于在未指定添加数据的情况下给某些可为空的列自动赋值 NULL,一般我们用不到这个功能,直接传入 null 即可。第三个参数是一个 ContentValues 对象,它提供了一系列的 put()方法重载,用于向 ContentValues 中添加数据,只需要将表中的每个列名以及相应的待添加数据传入即可。接下来还是让我们通过例子的方式来亲身体验一下如何添加数据。

修改 activity_main.xml 中的代码,如下所示:
    <Button
        android:id="@+id/buttonAddDataBase"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="添加数据"
        android:textColor="#9eff00"
        android:textSize="25dp" />
接着修改 MainActivity 中的代码,如下所示:
        mButtonAdd = (Button) findViewById(R.id.buttonAddDataBase);
        mButtonAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                SQLiteDatabase sqLiteDatabase = myDatabaseHelper.getWritableDatabase();
                ContentValues values = new ContentValues();
                // 开始组装第一条数据
                values.put("name", "WillFlow");
                values.put("author", "WGH");
                values.put("pages", 525);
                values.put("price", 16.18);
                sqLiteDatabase.insert("Book", null, values); // 插入第一条数据
                values.clear();
                // 开始组装第二条数据
                values.put("name", "Flipped");
                values.put("author", "Rob Reiner");
                values.put("pages", 678);
                values.put("price", 20.17);
                sqLiteDatabase.insert("Book", null, values); // 插入第二条数据
            }
        });

在添加数据按钮的点击事件里面,我们先获取到了 SQLiteDatabase 对象,然后使用 ContentValues 来对要添加的数据进行组装。这里只对 Book 表里其

C#结合VS2008实现SQLite数据库应用实战 简介:本文详细介绍了如何在Visual Studio 2008环境下使用C#语言集成和操作SQLite数据库。SQLite作为轻量级、自包含的SQL数据库引擎,适用于无需独立服务器的小型桌面或嵌入式项目。文章涵盖SQLite .NET数据提供程序的引入、数据库连接配置、表的创建、数据增删改查操作、数据读取与遍历,以及连接关闭等核心流程,并介绍了SQLiteCommand、SQLiteDataReader、SQLiteDataAdapter等关键类的使用方法。 阅读详情

相关推荐

UNI-APP 中sqlite demo 增删查改

本demo包含 自己封装的sqlite.js 页面功能 打开关闭数据库 创建表、删除表 新增表数据、删除表数据 查询表数据、编辑表数据 可按条件操作,删除、查询表数据

C#使用Sqlite数据库(增删查事务修改密码)

C#使用Sqlite数据库,操作有:增、删、查、插入多条数据时为了加快所以需要使用事务,使用SQLiteParameter参数来操作数据库,修改Sqlite数据库密码。如果有不明白的欢迎加微信交流:VPAmway。

如何使你的直流电机闭环?(PID讲解)

看了看很多大佬写的PID讲解很全面也很复杂,实在是不适合很多萌新入坑,所以想按自己的理解写一篇通俗易懂的PID算法讲解

a2001444的博客 1万+

windows11系统封装教程

1、 现在电脑品牌各式各样,小白对电脑软件的安装存在较大的难题,今天笔者针对以上的问题做如下教程:windows11系统封装教程方式为视频方式。

cyz141001的博客 5879

FPGA八股文(2)——笔试的FPGA问题汇总(持续更新)

常见FPGA笔试题的概念总结

居安士的博客 8907

TCMSP数据库+R语言实战:从网页爬虫到中药-靶点网络图的全流程解析

本文详细解析了如何使用R语言从TCMSP数据库抓取中药-靶点数据,并通过数据清洗、网络分析和可视化构建完整的中药作用机制研究流程。涵盖动态网页爬虫、ADME参数筛选、网络图构建及高级可视化技巧,为中医药现代化研究提供实用的生物信息学方法。

weixin_31304817的博客 337

【新手必看】蓝牙的HOGP和HID、GATT有什么区别和联系

让新手宏观了解蓝牙HOGP、HID、GATT这三个协议的区别和联系

qq_51976334的博客 1565

非sudo用户如何安全使用Docker:Rootless模式实战指南

Docker Rootless模式是一种基于Linux用户命名空间(userns)的容器运行时安全机制,它通过UID/GID映射、fuse-overlayfs文件系统和slirp4netns网络栈,在不提升权限的前提下实现容器隔离。其核心原理是将容器内root身份映射为宿主机非特权用户,从而规避docker组等价root的安全风险。相比传统root模式,Rootless在权限控制、逃逸防护和多租户隔离方面具备天然优势,适用于CI/CD流水线、Kubernetes边缘节点及受限生产环境。本文聚焦无sudo权限

weixin_30274627的博客 349

自动化Google Chrome的强大工具:chromedriver下载、安装、简单使用

本文介绍了 ChromeDriver 的基本概念和安装配置方法,重点讲解了如何通过 Selenium 实现 Chrome 浏览器的自动化测试。内容涵盖了 ChromeDriver 下载、版本匹配、依赖引入和简单的自动化测试脚本示例,帮助读者快速上手并避免常见问题。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 88万+

# YOLOv11改进系列 | 引入仓库自研C3k2_EIEM模块,Sobel边缘分支增强检测细节表达

文章摘要: YOLOv11-seg改进中提出的C3k2_EIEM模块通过引入边缘信息增强机制,显著提升了模型对轮廓和纹理的感知能力。该模块在保持原有C3k2结构的基础上,创新性地结合了Sobel边缘检测分支与常规卷积分支的双路特征融合。核心改进包括:(1)固定Sobel算子提供稳定的梯度响应;(2)并行处理边缘与纹理特征;(3)通过1x1卷积实现特征融合。实验显示,改进后模型参数量增加14.16%,计算量提升12.5%,但显著增强了在复杂边界场景下的分割精度。这种设计特别适用于需要精细轮廓识别的任务,如商品

qq_44224801的博客 95

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

上一篇: 2.1 SQLite数据库的创建和升级
下一篇: 3.1 使用 HTTP 访问网络的两种方式详解
WillFlow
博客等级 码龄11年 61粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值