android学习---SQLite数据库存储

手把手教你玩转AT32F403A位带操作:像51单片机一样控制GPIO 本文详细介绍了如何在雅特力AT32F403A国产MCU上实现位带操作,像51单片机一样高效控制GPIO。通过实战演示和性能对比,展示了位带操作在实时控制中的优势,包括更快的执行速度和更低的延迟,特别适合工业控制和电机驱动等场景。 阅读详情

一、SQLite概述

  SQLite是一款轻量级的关系型数据库,它的运算速度非常快,占用资源很少,通常只需要几百KB的内存就足够了,因而特别适合在移动设备上使用。SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务。

  SQLite比一般的数据库要简单的多,他甚至不用设置用户名和密码就可以使用。Android把这个功能极为强大的数据库嵌入到了系统当中,使得本地持久化的功能有了一次质的飞跃。

  SQLite数据库可以存储数据量大、结构性复杂的数据,比如:我们手机短信程序中的很多会话。这些都是文件存储和SharedPreferences存储很难做到的。

二、如何使用SQLite

1.创建数据库和数据表2.添加数据3.修改数据4.删除数据5.查询数据
创建数据库和数据表的步骤
1.新建类继承SQLiteOpenHelper
2.实现构造方法
  四个参数:1.Context context:上下文环境。2.String name:数据库名。3.CursorFactory factory:允许开发者查询数据的时候返回一个自定义的Cursor,一般传入null。4.int version:当前的数据库的版本号,可用于对数据库进行升级操作。
3.重写onCreate方法
4.重写onUpgrade方法
5.实例化SQLiteOpenHelper的子类对象
6.调用getReadableDatabase方法或getWritableDatabase方法
public class DBHelper extends SQLiteOpenHelper {
	
	private String sql_str="create table product(" +
			"id integer primary key not null," +
			"name text not null," +
			"price real not null," +
			"pic_url text not null," +
			"description text)";

	public DBHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
	}
	@Override
	public void onCreate(SQLiteDatabase arg0) {
		arg0.execSQL(sql_str);
		
	}

	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		
	}

}


添加数据
  SQLiteDatabase中提供了一个insert()方法,这个方法就是专门用于添加数据的。它接收3个参数,第一个参数是表名,我们希望向哪张表里添加数据,这里就传入该表的名字。第二个参数用于在未指定添加数据的情况下给某些可为空的列自动复制NULL,一般我们用不到这个功能,直接传入null即可。第三个参数是一个ContentValues对象,它提供了一系列的put()方法重载,用于向ContentValues中添加数据,只需要将表中的每个列名以及相应的待参加数据传入即可。

/*
 * 插入数据
 */
	private void insertData() {
		// 实例化DBHelper对象
		DBHelper dbhelper = new DBHelper(MainActivity.this, "mydb_2016", null,
				1);
		// 得到SQLiteDatabase对象
		SQLiteDatabase db = dbhelper.getWritableDatabase();
		// 创建ContentValues对象
		ContentValues cv = new ContentValues();
		cv.put("name", "酱油");
		cv.put("price", "9.9");
		cv.put("pic_url", "abc.jpg");
		// 调用insert方法插入数据
		db.insert("product", null, cv);
	}

修改数据

  SQLiteDatabase中也提供了一个update()方法,用于对数据进行更新,这个方法接收4个参数,第一个参数也是表名,在这里指定去更新哪张表里的数据。第二个参数是ContentValues对象,要把更新数据在这里组装进去。第三、四个参数用于约束更新某一行或某几行的数据,不指定的话默认就是更新所有行。

/*
	 * 修改数据
	 */
private void modifyData() {
	DBHelper dbHelper=new DBHelper(this, "mydb_2016", null, 1);
	SQLiteDatabase db=dbHelper.getWritableDatabase();
	
	ContentValues cv=new ContentValues();
	cv.put("name", "大米");
	//调用update方法对数据库进行修改
	db.update("product", cv, "id>? and id<?", new String[]{"2","5"});
		
	}
删除数据

  SQLiteDatabase中提供了一个delete()方法,专门用于删除数据,这个方法接收3个参数,第一个参数也是表名,在这里指定去删除哪张表里的数据。第二、三个参数用于约束删除某一行或某几行的数据,不指定的话默认就是删除所有行。

/*
	 * 删除数据
	 */
	private void deleteData() {
		DBHelper dbHelper=new DBHelper(this, "mydb_2016", null, 1);
		SQLiteDatabase db=dbHelper.getWritableDatabase();
		//调用delete方法对数据库进行删除
		db.delete("product", "id>?", new String[]{"2"});
		
	}

查询数据

  SQLiteDatabase中还提供了一个query()方法用于对数据进行查询,这个方法需要传入7个参数,第一个参数还是表名,在这里指定去查询哪张表里的数据。第二个参数用于指定去查询哪几列,如果不指定则默认查询所有列。第三、四个参数用于约束查询某一行或某几行的数据,不指定的话默认就是查询所有行。第五个参数用于指定需要去group by的列,不指定则表示不对查询结果进行group by操作。第六个参数用于对group by之后的数据进行进一步的过滤,不指定则表示不进行过滤。第七个参数用于指定查询结果的排序方法,不指定则表示使用默认的排序方法。

/*
 * 查询数据
 */
	private void queryData() {
		 list = new ArrayList<ProductSelect>();
		 
		 DBHelper dbHelper=new DBHelper(this, "mydb_2016", null, 1);
		 SQLiteDatabase db=dbHelper.getReadableDatabase();
		 Cursor cursor=db.query("product", null, null, null, null, null, null);
		 cursor.moveToFirst();
		 do{
			 int id=cursor.getInt(cursor.getColumnIndex("id"));
			 String name=cursor.getString(cursor.getColumnIndex("name"));
			 String pic_url=cursor.getString(cursor.getColumnIndex("pic_url"));
			double price=cursor.getDouble(cursor.getColumnIndex("price"));
			String desc=cursor.getString(cursor.getColumnIndex("description"));
			
			 ProductSelect p=new ProductSelect();
			 p.setId(id);
			 p.setName(name);
			 p.setPic(pic_url);
			 p.setPrice(price);
			 
			 list.add(p);
			
		 } while(cursor.moveToNext());
		 cursor.close();
		 
		 adapter = new ProductSelectAdapter(MainActivity.this, list);
			listView.setAdapter(adapter);
	}





Halcon深度图转点云实战:从XYZ映射到3D可视化全解析 本文详细解析了如何使用Halcon将深度图转换为点云图,涵盖从XYZ映射到3D可视化的全流程。通过实战案例和代码示例,介绍了深度图预处理、xyz_to_object_model_3d核心转换及3D可视化技巧,适用于工业检测、三维重建等场景。 阅读详情

相关推荐

Qupath软件的安装与使用

Qupath软件的安装与使用软件安装软件下载软件安装【windows版】简单使用文件打开人工标注标注导出和导入 Qupath是一款开源的医学图像标注软件,适合放射影像及数字病理切片等的查看。同时,其自带的标注功能使得医生可以直接通过该软件进行病变区域的标注和分类。跟进一步的,该软件提供groovy脚本运行接口,可供操作者编写和运行脚本,将标注信息转换为xml或者json格式的数据进行进一步的后序处...

qq_40662074的博客 3万+

数据存储——SQLite数据库存储——API

一.特点 1.存储具有一定结构的数据 2.文件类型.db 3.存储目录:date/date/包名/datebases/数据库文件 4.应用卸载之后,数据同时被删除 5.数据不被其他应用直接操作 二.SQLite数据库 三.API 1.SQLiteOpenHelper 工具类 (1)是一个抽象类,需要继承并实现了抽象方法之后才能使用 (2)抽象方法: ①void o...

weixin_30664051的博客 127

Rk3568 百兆以太网RMII模式DTS配置详解

本文详细解析了RK3568芯片在百兆以太网RMII模式下的DTS配置方法,包括时钟树配置、PHY接口模式定义及实际工程中的进阶设置。通过实战案例和调试技巧,帮助开发者快速解决RMII模式下的常见问题,提升工业控制设备的网络稳定性。

weixin_29189377的博客 420

Android学习——SQLite数据库存储

SQLite数据库可以存储应用程序中的大量数据,并对数据进行管理和维护。

weixin_66158110的博客 2573

金融级IT架构-数字银行的云原生架构解析

最近断断续续花了差不多2到3周的时间阅读完由电子工业出版社出版的《金融级IT架构:数字银行的云原生架构解密》的这本书,作者是作者是网商银行技术编委会。 本书契合了当前银行业分布式架构转型趋势,内容是经过实践检验的领先技术介绍了网商银行IT技术架构演进路线,涵盖了分布式、单元化、弹性混合云、云原生多个基础架构领域,同时介绍了技术风险、安全可信、业务架构等多方面的技术实践经验。 对于这本书实际很早搜索云原生相关书籍的时候就搜索到,但是一看标题是金融IT架构方面的因此没有引起太多的重视,后面由华章...

年少有为 4064

Agentic RAG:RAG从静态到具有理解、推理、决策的Agentic RAG

RAG技术演进:从静态检索到智能代理 RAG(检索增强生成)技术经历了五个关键发展阶段:基础RAG(关键词检索)、高级RAG(语义理解)、模块化RAG(灵活架构)、图RAG(知识图谱)和最新的Agentic RAG(智能代理)。Agentic RAG通过引入自主AI代理,具备反思、规划、工具使用和多代理协作能力,实现了动态决策和自适应工作流。相比传统RAG的静态检索流程,Agentic RAG能处理复杂多步推理任务,通过自我改进机制提高输出质量,并支持多专业代理协作,显著提升了RAG系统在复杂场景下的表现。

2536

Android中数据存储——SQLite数据库存储数据

当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢?数据存储方式Android 的数据存储有5种方式: SharedPreferences存储数据    SharedPreferences数据存储,也叫作xml存储。这是将数据存储“data/data/程序包名/share_prefs”路径下的到xml文件中。 相关连接:

To_be_Designer 7628

具身智能端到端大模型VLA (Vision Language Action)

在语言为条件的机器人任务中,策略必须具备理解语言指令、视觉感知环境并生成适当动作的能力,这就需要VLA的。例如,在自动驾驶领域,传统的做法是将感知、预测、规划等步骤分开处理,而VLA则试图用一个统一的框架来替代这种分立的方法。另外,VLA的模型对于算力的需求很大,单片AI算力1000Tops的Thor大概率会延期发布,加上英伟达芯片的量产时间与成本挑战,以及在国内的应用情况,对车企而言是个大问题。以谷歌DeepMind推出的RT-2为例,该模型可以在新的物体、背景和环境中表现出显著改善的性能。

具身智能机器人 1万+

Android之数据存储详解(二)之SQLite数据库存储数据

上一篇 Android之数据存储详解(一)讲解了文件存储数据和使用SharedPreferences存储数据,接下来讲解 SQLite数据库存储数据。一、SQLite数据库简介SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入 式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持 Windo

wei_zhi的博客 1961

python——体育收入排行2012-2019

请分析文件并读取数据,完成以下功能: 1. 某年的收入排名前若干名选手 如果输入n是2012-19之间的年份,则可以输入整数k,输出n年的前k名排名信息。如果k大于当年排名运动员人数,则输出当年所有的信息。每行一名运动员信息,以' | '间隔该行各项信息。 2. 某年属于某个运动项目的所有运动员信息,和收入总和 如果输入的是'sport'(不区分大小写),则可以继续输入一个年份201*,输出一个当年排行中的运动项目菜单,按照字符串升序排列,格式见示例,再输入运动项目对应的数字来输出该项运动当

m0_62488776的博客 2257

Astah 9.0升级步骤(Widnows/Mac OS)

Astah Professional是一款全新的轻量级UML建模工具。软件集思维导图和UML建模于一体,采用100%纯JAVA构建, 兼容性强,不仅能够实现分布式建模、项目合并,还能够实现和其它建模工具的交互。

tequiero777的博客 2824

Android入门——数据存储之SQLite详解与简单应用

引言很多时候我们的APP都不能独立于数据之外,常常对数据进行各种操作。Android为数据存储提供了多种方式,主要有五种:文件、SharedPreferences、SQLite、网络、内容提供者。这一篇先总结下关于如何使用SQLite数据库。一SQLite 数据库概述在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)

最美不过,心中有梦,身旁有你! 3424

斯坦福大学3D点云模型下载

本文整理了斯坦福大学10个经典的点云(pcd)及其模型(ply),方便日后使用,欢迎免费下载!

孙悟空 7733

【鼠】安卓学习杂记(十三)——Android数据存储之SQLite数据库存储

一、适用场景适用于存储一些复杂的关系型数据。二、概述轻量级嵌入式数据库引擎,它支持SQL 语言,并且只利用很少的内存就有很好的性能。可存储大量的数据。三、...

訾博(ZiBo)的博客 287

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Android学习:利用SQLite数据库存储数据

1、SQLite简介 SQLite是一款轻量级的关系型数据库,他支持SQL语言。由于它占用的资源非常少,利用很少的内存就有很好的性能,所以很多嵌入式设备都使用SQLite来存储数据。它支持windows、Linux以及UNIX等主流的操作系统,兼容性好。可以使用java、C#和PHP等多种开发语言,通过ODBC接口操作SQLite。 目前的一些主流移动操作系统(如Android和IOS等),都在使用SQLite作为复杂数据的存储引擎。 2、SQLite的数据类型 ...

weixin_52021660的博客 4547

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android Studio—— SQLite数据库存储(1),学习Android开发的步骤,

在 Android 开发中,我们需要存储大量的数据,用户信息、聊天信息、本地记录等等.而 Android 系统提供了 SQLite 数据库存储,SQLite 数据库是一款轻型的数据库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎SQLite数据库现在经常用到,如聊天记录存储、购买商品记录等等.

2401_84152232的博客 1282

温度PID控制PLC程序

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

SQLite数据库存储(一)【安卓学习笔记】

对于MODE_PRIVATE,MODE_APPEND两种模式,对写文件的影响有什么不同? MODE_PRIVATE:该文件只能被当前程序读写,会把原来的内容覆盖掉 MODE_APPEND:该文件的内容可追加,不会把原来的内容覆盖掉,新写的内容追加在文件后面 但是对于修改文件中的部分内容,应该怎么做呢?这就需要我们用到SQLite数据库 主要内容: 创建和打开一个SQLite 数据库 数据库本身和它的表 SQLite数据管理 增删改查 SQLite介绍 轻量级的嵌入式本地数据库 跨平

weixin_43354214的博客 514

【Android学习笔记】SQLite数据库存储

因为前面提到xml存储更改文件很麻烦的缘故,最终还是选择了使用数据库存储 一试才觉十分的方便,速度也快 上源码: public class DBHelper extends SQLiteOpenHelper{ private final static String DATABASE_NAME="fanliao_db"; private final static int D

小魏的修行路 2426

Android学习之SQLite数据库存储

  今天学习sqlite数据库存储,sqlite数据库是轻量级的,非常小,只有几百K大小,非常移动设备使用,几乎所有的手机使用的都是sqlite数据库。  sqlite保存的数据类型:.db  数据保存的路径:/data/data/packageName/databases/xxx.db  然后是最重要的API的学习:SQLiteOpenHelper,是一个抽象类  public SQLiteOp...

weixin_39637376的博客 173

Android学习--SQLite数据库存储

Sqlite数据库 1 特点 安装文件小: 最小只有几百K, Android系统已经安装 支持多操作系统: Android, WP, IOS, Windows,Linux等 支持多语言: 比如 Java 、 PHP、C#等. 处理速度快: 处理速度比Mysql, Oracle,SqlServer都要快(数据量不是特别大) Sqlite中的一个数据库就是一个.db文件(本质上.db的后缀都可以不...

一个人的江湖 1096

Android学习笔记034之数据存储—SQLite数据库

前面我们介绍了Android数据存储的两种方法:文件存储和SharedPreference存储,这一篇我们来学习一下Android存储数据的另外一种方式——SQLite数据库存储。1、SQlite数据库简介  现在的主流移动智能设备中,比如Android手机、iPhone手机,平板等都是使用SQLite数据库作为存储复杂数据的存储引擎。那么什么是SQLite数据库呢?

Huawen的博客 1974

Android :数据存储方案学习笔记之 SQLite数据库存储

SQLite数据库存储SQLite数据库存储1、创建数据库2、升级数据库3、增删查改3.1、添加数据3.2、更新数据3.3、删除数据3.4、查询数据4、使用 SQL 操作数据库5、参考 SQLite数据库存储 特点: 适用于存储大量复杂的数据 1、创建数据库 Android专门提供了一个 SQLiteOpenHelper帮助类对数据库进行创建和升级 SQLiteOpenHelper需要创建一个自己的帮助类去继承它并且重写它的两个抽象方法,即 onCreate() 和 onUpgrade() SQLit

JMW1407的博客 821

android学习之存储篇_SQLite数据库、SQLite学习看我就够了

SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。 例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。  但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。  另外, SQLite 在解析CR

zhonggaorong的专栏 618

Android学习笔记--SQLite数据库存储

Android内置了SQLite,SQLite是一款轻量级的关系型数据库,运算速度快,占用资源少。 1.创建数据库 首先需要用到SQLiteOpenHelper, SQLiteOpenHelper + onCreate(db : SQLiteDatabase) : void + onUpdate(db : SQLiteDatabase, oldVersion ...

cjhdcsdn的博客 300

【android学习之十】——数据存储2:SQLite数据库操作

声明:学习的书籍《Android应用开发揭秘》,这里记录学习该书籍的日志,引用的相关代码与总结描述,没有商业的用途,完全是自我学习的一个记录,刚刚学习不可避免会出现很多问题,若是有错误还请大家多多批评。一、    数据存储之SQLite数据库操作之前已经学习了三种数据操作的方式,还有一种最为常用数据库操作,因为之前的三种数据方式一般只存储一些简单的,数据量较小的数据。如果数据量比较大,需要管理,维

jercy的专栏 3484

android学习笔记之SQLite数据库存储

在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1、SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型。 2、

逐梦者频道 3095
上一篇: android学习---SharedPreferences存储
下一篇: android学习---自定义View
liu_keke
博客等级 码龄11年 3粉丝 25原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值