关于Android中SQLiteDataBase的增删改查的基本使用

Android 高手进阶教程(二)之----Android 数据库SQLiteDatabase的使用!! 有两种方法:第一种用命令查看:adb shell ls data/data/com.android.tutor/databases。可以存取简单的数据(int,double,float.etc),它经常用于数据缓存,因为它读取存储简单。第一步:新建一个Android工程,命名为SQLiteDatabaseDemo.2.Android Framework学习指南,助力成为系统级开发高手。5.Android Jetpack从入门到精通,构建高质量UI界面。10.Android零基础入门到精通,高手进阶之路。 阅读详情

SQLiteDataBase是Android手机的内置的一个轻型数据库,学会对数据库的使用,将会在编程时提供很大的方便,而且能瞬间提高逼格,使程序看上去高大上好多,给以一种菜鸟看不懂我程序的感觉(虽然很简单),不过吹牛逼很是方便的,好了废话也不多说了,这里我就讲讲我在最近的一次开发中用到数据库时的使用。因为自己也是新手,数据库还没有开设课程,所以只会一些简单的用法,也就是著名的增删改查啦。

要使用数据库时,当然需要一个实体类啦,因为我做的是关于学生方面的东西,所以我就拿学生类来做实体类。

package com.example.sqlite.model;

public class ModelStudent {

	//学生表主键ID
	private int studentID;
	//学生学号
	private String account;
	//学生姓名
	private String name;
	//学生性别
	private String sex;
	//学生专业
	private String major;
	public int getStudentID() {
		return studentID;
	}
	public void setStudentID(int studentID) {
		this.studentID = studentID;
	}
	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getMajor() {
		return major;
	}
	public void setMajor(String major) {
		this.major = major;
	}
	@Override
	public String toString() {
		return "ModelStudent [studentID=" + studentID + ", account=" + account
				+ ", name=" + name + ", sex=" + sex + ", major=" + major + "]";
	}
	
	
}

上面就是学生类的定义,包括最基本的set和get方法。其中StudentID是要作为数据库的主键来使用的。

好了,关于数据库的操作从这里开始:

首先,我们要有一个数据库。在Android开发中,有许多的东西都需要一定的权限,比如开发从网络获取资源需要权限,打电话需要权限等等。这里要注意,数据库是不需要权限的,大家一定要注意一下。

(一)建表

建表的方法也不是太复杂,但是说明起来就比较难了。因为要想成功的操作数据库,就必须实现一定的封装,否则操作起来就很是麻烦。但是这里我就不进行封装了,因为太麻烦了,不过我会把当时自己的测试APP分享给大家,对封装感兴趣的,大家可以研究一下。

@Override
	public void onCreate(SQLiteDatabase pSqLiteDatabase) {
		StringBuilder _StringBuilder = new StringBuilder();
		
		_StringBuilder.append("              Create  TABLE Student( ");
		_StringBuilder.append("              [StudentID] integer PRIMARY KEY autoincrement NOT NULL");
		_StringBuilder.append("              ,[Account] varchar(15) NOT NULL");
		_StringBuilder.append("              ,[Name] varchar(10) NOT NULL");
		_StringBuilder.append("              ,[Sex] varchar(6) NOT NULL");
		_StringBuilder.append("              ,[Major] varchar(15) NOT NULL");
		_StringBuilder.append("              )");
		
		pSqLiteDatabase.execSQL(_StringBuilder.toString());
这就是建表语句,这是SQLiteOpenHelper类中的一个方法,该类是数据库操作的辅助类,我们可以继承它建一个新类,在里面实现方法。在建表语句中,"Student"是表名,当然建表的前提是要有数据库对象,下面我们在生成数据库对象,因为表是在数据库的里面的。(因为建表比较麻烦,当然我说的是语句麻烦,很容易出错,这里我推荐一个软件,SQLiteDeveloper 这个可以用来建表,很方面,具体用法大家可以度娘了,我就不详细介绍了)

private SQLiteHelper(Context pContext){
		super(pContext, "database.db", null,1);
	}

这里我们是用SQLiteHelper继承SQLiteOpenHelper,上面是SQLiteHelper的构造方法,其中,在super中,“database.db”是数据库名称,1 是版本号。当生成SQLiteHelper对象时,如果数据库不存在,则创建数据库。其中,SQLiteOpenHelper有一个方法,getWritableDatabase() ,它返回的就是一个可写的SQLiteDataBAse对象。要删除数据库也很简单,deleteDatabase("database.db"); 这是在MainActivity中直接调用的,看来是Activity中的方法了,它返回boolean值,删除成功返回true。

好了,接下来是重头戏了。

(增):

<span style="white-space:pre">	</span>public boolean insertStudent(ModelStudent pModelStudent){
		ContentValues _ContentValues = createParms(pModelStudent);
		 long newID = getDataBase().insert(getTableNameAndPK()[0], null,_ContentValues);
		return newID > 0;
	}
这个  函数就死用来实现增加数据。其中,createParms是我自己定义的函数,它的作用就是把ModelStudent对象转换为ContentValues对象,因为增加数据调用的是SQLiteDataBase的方法,它需要ContentValues对象作为参数,当然也可以直接用SQl语句来实现,当然很麻烦,我就不推荐了。getDataBase函数也是我自己定义的,它返回的是一个SQliteDataBase的对象,比较简单我就不给出函数代码了。不过createParms函数我还是给大家代码啦,容易理解。

<span style="white-space:pre">	</span>public ContentValues createParms(ModelStudent pModelStudent){
		ContentValues _ContentValues = new ContentValues();
		_ContentValues.put("Account", pModelStudent.getAccount());
		_ContentValues.put("Name", pModelStudent.getName());
		_ContentValues.put("Sex", pModelStudent.getSex());
		_ContentValues.put("Major", pModelStudent.getMajor());
		return _ContentValues;
	}
增加数据的操作到这里就结束了。

(删):

<span style="white-space:pre">	</span>protected boolean delete(String p_TableName,String p_Condition){
		
		return getDataBase().delete(p_TableName, " 1=1 " + p_Condition,null) >= 0;
	}
删除操作也就是一句话,这里需要注意的是函数的参数,p_TableName是我们的表名,也就是建表语句中的Student,而p_condition是SQL语句,删除的时候,我们一般都是按照ID来删除,也就是我们ModelStudent类中StudentID," And StudentID = " + StudentID 这个就是p_Condition,(注意前后空格要有)。

(改):

<span style="white-space:pre">	</span>public boolean UpdateStudent(String pCondition,ModelStudent pModelStudent){
		ContentValues _ContentValues = createParms(pModelStudent);
		return getDataBase().update("Student", _ContentValues, pCondition, null) > 0;
		
	}
改也就是更新数据信息,我们来看函数。同样,pCondition也是SQL语句,pModelStudent是修改过信息的ModelStudent对象。我们要做的就是把已经存在数据库中的信息更改。updata函数是SQLiteDataBase中的方法,第一个参数是表名,第二个是ContentValues对象,第三个是条件语句,第四个,就暂时用null吧,也没事。

"  StudentID = " StudentID() 这个就是pCondition。

(查):

rawQuery(p_sqlText, null),查询也就是这一行代码,它返回的就是Cursor对象,里面包含查询的信息。当然如何把里面的信息提取出来也不是难事,只要对Cursor类有一定的了解,就可以很简单的实现了。

SqlText = "Select * From Student  " + " Where StudentID = " + pStudentID 这个就是按ID来查询了,如果把where及后面的语句都去掉,那么得到的就是全部的数据库包含的信息了。


好了,至此,数据库的操作也基本结束了,希望大家能够 明白,毕竟我对数据库也是一知半解的。不过,在我的测试数据库的App中,里面包含了详细的操作,当然是封装的很好的,各种处理,有什么不太明白的可以参考那个东西。

链接:http://download.youkuaiyun.com/detail/programchangesworld/8564389




11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别 使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。...... 阅读详情

相关推荐

一文理解近红外光谱数据建模步骤的细节(细节知识总结)

上一篇文章,向入门的同志大体介绍了近红外光谱数据建模的内容,依据上文其实已经可以基本完成数据建模的工作,但是很多工作不够细致,本文便是分享其中的一些技术细节。

weixin_46207310的博客 5567

MySQL增删改查&&高级查询语句

目录一、前言二、基础查询三、过滤查询四、模糊查询五、排序查询上一篇文章我们一起看了MySQL的账号管理,还有基础的建库建表这些操作,而这篇文章我们就一起来看看MySQL一些基础的CRUD语句以及一些高级一点的查询吧,我们全程使用这张员工表进行操作:t_mysql_employees 查询结果: 查询结果: 查询结果: 这里这些基础查询就不过多的放查询结果截图了~ 结果: 结果: 查询结果: #案例1:查询工资>12000的员工信息 查询结果: #案例2:

qq_63492318的博客 576

FineBI制作数据可视化大屏-数据连接(1)

快速上手大屏可视化,FineBI数据连接配置。

Pangaoyang_的博客 1913

5. 数据的增删改查

操作系统: windows IDE: Pycharm API接口文档: 如果采用前后端分离的架构开发, 后端几乎不负责任何展现界面的工作,只负责对数据进行管理 。数据的管理,主要就是:响应前端的请求, 对数据资源的增加、删除、修改、查询 。 实际生产过程中系统的数据在前后端的往来通过API接口,其中自然包括了客户数据的增查改删接口。设计人员根据需求编好接口文档,将来就需要根据这样的文档来实现后端的功能。 比如接口文档明确说明了,设计针对管理员用户的请求。 前面我们已经为销售员用户专门创建了一个应用 sale

cwtnice的博客 496

【OpenClaw从入门到精通】第03篇:吃透Gateway/Skills/ClawHub核心概念(2026实测+避坑)

本文针对OpenClaw新手易混淆的核心概念痛点,以通俗类比+实操演示拆解OpenClaw核心、Gateway、Skills、ClawHub四大组件。通过“数字员工团队”类比明确各组件定位:OpenClaw核心是“老板”(调度中心)、Gateway是“前台+后勤”(后台进程)、Skills是“专业员工”(功能插件)、ClawHub是“人才市场”(技能商店)。补充版本更名史、技能加载优先级、ClawHub与GitHub区别等关键细节,结合“AI融资新闻查询并邮件推送”虚拟案例演示组件协同流程,梳理5个高频认知

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 5041

Auto.js实现视频号点赞自动化

摘要:本文介绍了一个微信视频号自动化点赞的实现方案。通过定位点赞图标和数量容器,点击点赞按钮后检测点赞数变化,若发现取消点赞则自动补点。核心代码包括:1)获取点赞容器和图标;2)记录点赞前后数量;3)判断是否误取消并补点;4)循环执行点赞和滑动页面操作。该方案解决了滑动页面可能导致误取消点赞的问题,实现了自动化批量点赞功能。文章强调仅供学习参考,提醒勿滥用该技术。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 2575

Android 操作SQLite基本用法(SQLiteDatabase)

一、SQLite数据类型 一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种常用的数据类型: NULL: 这个值为空值 VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000。 CHAR(n):长度固定为n的字串,n不能超过 254。 INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3...

这个男孩不简单的博客 3万+

Arduino、ESP32驱动TEMT6000传感器(光照传感器篇)

TEMT6000是一个三极管类型的光敏传感器,其光照强度和基极的电流成正比。用起来也相当简单,可以简单的连接该传感器的基极到模拟电压输入,通过简单的检测电压值就可以判断当前的光照强度。

不脱发的程序猿 4233

Android之SQLiteDatabase

文章目录一、SQLiteDatabase概念二、SQLiteDatabase对象的操作 一、SQLiteDatabase概念 用于管理和操作SQLite数据库,几乎所有的数据库操作,最终都将由这个类完成 getReadableDatabase() 返回的就是SQLiteDatabase SQLiteDatabase db=helper.getReadableDatabase(); 获取该类的对...

qq_39438055的博客 1491

环境配置与基础教程:当前大厂主流套路:使用 MLflow 全链路管理 YOLO 实验参数、指标与模型版本

YOLO26与MLflow结合实现高效实验管理 YOLO26通过移除DFL模块和实现无NMS端到端推理,在CPU推理速度上提升43%,同时简化了模型导出流程。MLflow 3.10/3.11版本新增多工作区支持、成本追踪和安全序列化等功能,为机器学习实验提供全生命周期管理。两者结合可解决传统"截图+Excel"式实验管理的痛点,实现参数追踪、指标对比和模型版本控制的自动化。 关键优势: YOLO26架构优化带来显著性能提升 MLflow提供实验到生产的全链路管理 原生集成简化了计算机视觉

ZXSXJ的博客 191

boost::circular_buffer缓行缓冲区

1、circular_buffer实现了一个环形缓冲区,空间大小是固定的,当到达容器末尾时,将自动利用容器另一端的位置空间。 2、当程序需要容纳大量的元素,但多数情况下仅保存较少数量元素时可以使用circular_buffer_space_optimized,他可以有效的减少内存的占用,提高程序的运行效率。 3、主要接口: 4、实现一个生产者---消费者模式示例: #inc...

小米的修行之路 791

博客android实现数据库增删改查,Android中使用Sqlite数据库(三) 使用 SQLiteDatabase类实现 增删改查...

package com.example.android_db.dao;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.content.ContentValues;import android.content.Context;im...

weixin_39652810的博客 234

【图像去噪】论文复现:CLIP用于图像去噪提升泛化性!CLIPDenoising的Pytorch源码复现,跑通CLIPDenoising全流程,图文结合,网络结构梳理和拆解,对应源码注释!

论文题目:Transfer CLIP for Generalizable Image Denoising —— 用于可泛化图像去噪的转移CLIP。【图像去噪】论文精读:Transfer CLIP for Generalizable Image Denoising(CLIPDenoising)CLIPDenoising理论部分详解见上面对应的论文精读,本文以源码为主,理论部分只是粗略回顾。启发:多看其他领域的文章,分析是否能应用在去噪领域,这是产生idea的要素之一;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1414

android的一个小实例,SQLiteDatabase的增删改查

SQLiteDatabase的增删改查,切换图形,ListView的使用,搜索框的布局,私信我

weixin_49398514的博客 198

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android对SQLite的"增删改查"——SQLiteDatabase

Android对SQLite的"增删改查"——SQLiteDatabase

Michael Zhan的博客 2615

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Android中使用Sqlite数据库(三) 使用 SQLiteDatabase类实现 增删改查

package com.example.android_db.dao; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.content.ContentValues; import android.content.Cont

xiatian6032的专栏 634

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Java安卓开发之SQLiteDatabase中(通俗易懂版)——第7章

继上一篇我们将初始化工作做好之后,正式开始对于数据库增删改查一系列的函数定义在开始之前,我们下文会提到一个类:ContentValues,这个是类似于HashMap的一个东西,键对应一个值,添加和查询都需要ContentValues。

安卓开发热爱者 1467

7-1.Android SQLite 之 SQLiteDatabase 简单编码模板(SQLiteDatabase 使用、SQL 语句编写)

SQLite 是一种轻量级的数据库引擎,它非常适合在移动设备(例如,Android)上使用。SQLiteDatabase 允许应用程序与 SQLite 数据库进行交互,它提供了增删改查等一系列方法

weixin_52173250的博客 1324

Android SQLite增删改查(java版)

在UserDbHelper 类里面,提供了一个获取数据库实例的方法,叫getInstance()方法,这个方法的作用就是获取当前类的对象,从而调用该类里面定义的增,删,改,查的方法,SQLite是一个轻量级的关系型数据库,运算速度快,占用资源少,很适合在移动设备上使用, 不仅支持标准SQL语法,还遵循ACID(数据库事务)原则,无需账号,使用起来非常方便!购物车下单,在做商城项目中,购物车是必不可少的一个功能,通常情况下,购物车有多条数据需要提交生成订单,这个过程就是一个批量的操作。

商城app+新闻app+备忘录记事本app视频教程在某站【浩宇软件开发】 2213

android数据存储篇——SqliteDatabase

在安卓系统内部存在着sqlitedatabase数据库。可以将app的一些默认数据,比如app的默认设置。账号信息。消息记录等,以数据库的形式保存在手机内存上。而保存的目录为系统根目录/data/data/包名/数据库名。下面开始讲解其中的主要类怎么使用。SQLiteOpenHelper: SQLiteOpenHelper是SQLitedatabase的辅助类。用来初始化数据库连接。SQLiteD

qq_32062359的博客 493

SQLiteDatabase 增删改查(CRUD)详细操作

在 Android 中使用 SQLiteDatabase 进行增删改查操作是开发中的核心技能之一。下面我将详细说明如何使用 SQLiteDatabase 进行 CRUD 操作。

百锦再的博客 1万+

Android开发学习笔记整理(12)-SQLiteOpenHelper、SQLiteDatabase、execSQL和增删改查

SQLiteOpenHelper 作用: 用于管理数据库链接 两个方法: (1) onCreate (2) onUpgrade SQLiteDatabase 作用: 相当于数据库/链接 分类: ReadableDatabase、WritableDatabaase 如何获取: 通过SQLiteOpenHeIper获取 execSQL 作用: 执行数据库语句 使用: 编写完整的SQL语句,然后执行 缺陷: (1) 对于SQL语句要求高 (2) 没有返回值 insert、de lete、update、 q

qq_44458489的博客 1093

Android开发(10)使用SQLiteDatabase操作SQLite数据库实现增删改查(源码)

Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert、delet

国旭 的专栏 1万+

Android SQLite增删改查(Kotlin版)

在UserDbHelper 类里面,提供了一个获取数据库实例的方法,叫getInstance()方法,这个方法的作用就是获取当前类的对象,从而调用该类里面定义的增,删,改,查的方法。,跟登录逻辑差不多,登录是根据用户名查询当前用户数据,返回的是一个UserInfo对象,获取注册用户,查询的是所有用户数据,返回的是一个UserInfo对象集合。来实现,但当我们存储一些复杂的数量类型时(如:购物车,订单等),这时使用。,如果根据用户名修改,有可能出错,因为用户名可能存在同名的情况。这里注意,建表的主键为。

商城app+新闻app+备忘录记事本app视频教程在某站【浩宇软件开发】 2083

Android SQLiteDatabase 数据库操作(建立数据表,增删改查操作)

SQLiteDatabase接口操作建立数据表

只要你能好 1439

SqliteDatabase 对多个表增删改查

在创建数据库时需要创建多张表,并对他们进行增删改查 一:建立社区里特帮助类,继承SQLiteOpenHelper public class SqlHelper extends SQLiteOpenHelper { private static final String DB_NAME = "mydatabase.db";//库名 private static final int DB_

lei的博客 1648
上一篇: Android开发中EditText获得焦点弹出输入框改变屏幕布局的问题
下一篇: ACM-5元和10元的经典问题
潘建成
博客等级 码龄12年 139粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值