当前位置: 首页 > news >正文

android sqlite 数据库简单封装示例(java)

sqlite 数据库简单封装示例,使用记事本数据库表进行示例。

首先继承SQLiteOpenHelper 使用sql语句进行创建一张表。

public class noteDBHelper extends SQLiteOpenHelper {public noteDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase) {String sql="create table if not exists note_data(" +"note_id integer primary key autoincrement," +"note_tittle varchar,"+"note_content varchar,"+"note_type varchar,"+"createTime varchar,"+"updateTime varchar,"+"note_owner varchar)";sqLiteDatabase.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {}
}

使用单例封装这张表的增删改查,同时转换成字段对应的结构体。这样方便数据管理,插入,查询,更新等操作。 

public class NoteDaoManage {private static NoteDaoManage noteDaoManage;Context context;noteDBHelper dbHelper;public static NoteDaoManage GetInstance(Context base) {if (noteDaoManage == null) {noteDaoManage = new NoteDaoManage(base);}return noteDaoManage;}private NoteDaoManage(Context context) {this.context = context;dbHelper = new noteDBHelper(context, "note.db", null, 1);}public void insertNote(NoteBean bean){SQLiteDatabase sqLiteDatabase= dbHelper.getWritableDatabase();ContentValues cv = new ContentValues();cv.put("note_tittle",bean.getTitle());cv.put("note_content",bean.getContent());cv.put("note_type",bean.getType());cv.put("createTime",bean.getCreateTime());cv.put("updateTime",bean.getUpdateTime());cv.put("note_owner",bean.getOwner());sqLiteDatabase.insert("note_data",null,cv);}public int DeleteNote(int id){SQLiteDatabase sqLiteDatabase= dbHelper.getWritableDatabase();int ret=0;ret=sqLiteDatabase.delete("note_data","note_id=?",new String[]{id + ""});return ret;}@SuppressLint("Range")public  List<NoteBean>  getAllData(){List<NoteBean> noteList = new ArrayList<>();SQLiteDatabase db = dbHelper.getWritableDatabase();String sql="select * from note_data "; // 查询全部数据Cursor cursor = db.rawQuery(sql,null);while (cursor.moveToNext()) {NoteBean note = new NoteBean();note.setId(cursor.getInt(cursor.getColumnIndex("note_id")));note.setTitle(cursor.getString(cursor.getColumnIndex("note_tittle")));note.setContent(cursor.getString(cursor.getColumnIndex("note_content")));note.setType(cursor.getString(cursor.getColumnIndex("note_type")));note.setCreateTime(cursor.getString(cursor.getColumnIndex("createTime")));note.setUpdateTime(cursor.getString(cursor.getColumnIndex("updateTime")));noteList.add(note);}if (cursor != null) {cursor.close();}if (db != null) {db.close();}return noteList;}public void updateNote(NoteBean note) {SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues cv = new ContentValues();cv.put("note_tittle", note.getTitle());cv.put("note_content", note.getContent());cv.put("note_type", note.getType());cv.put("updateTime", note.getUpdateTime());db.update("note_data", cv, "note_id=?", new String[]{note.getId()+""});db.close();}@SuppressLint("Range")public List<NoteBean> queryNotesAll(int mark, String text) {SQLiteDatabase db = dbHelper.getWritableDatabase();List<NoteBean> noteList = new ArrayList<>();NoteBean note;String sql ;Cursor cursor = null;if (TextUtils.isEmpty(text)){sql="select * from note_data "; // 查询全部数据}else {if(mark==0){sql = "SELECT * FROM note_data WHERE note_tittle LIKE '%" + text + "%'" + " order by note_id desc"; // 构建SQL语句}else {sql = "SELECT * FROM note_data WHERE note_content LIKE '%" + text + "%'" + " order by note_id desc"; // 构建SQL语句}}cursor = db.rawQuery(sql,null);while (cursor.moveToNext()) {note = new NoteBean();note.setId(cursor.getInt(cursor.getColumnIndex("note_id")));note.setTitle(cursor.getString(cursor.getColumnIndex("note_tittle")));note.setContent(cursor.getString(cursor.getColumnIndex("note_content")));note.setType(cursor.getString(cursor.getColumnIndex("note_type")));note.setCreateTime(cursor.getString(cursor.getColumnIndex("createTime")));note.setUpdateTime(cursor.getString(cursor.getColumnIndex("updateTime")));noteList.add(note);}if (cursor != null) {cursor.close();}if (db != null) {db.close();}return noteList;}}

相关文章:

android sqlite 数据库简单封装示例(java)

sqlite 数据库简单封装示例&#xff0c;使用记事本数据库表进行示例。 首先继承SQLiteOpenHelper 使用sql语句进行创建一张表。 public class noteDBHelper extends SQLiteOpenHelper {public noteDBHelper(Context context, String name, SQLiteDatabase.CursorFactory fact…...

“宠物服务的跨平台整合”:多设备宠物服务平台的实现

2.1 SSM框架介绍 本课题程序开发使用到的框架技术&#xff0c;英文名称缩写是SSM&#xff0c;在JavaWeb开发中使用的流行框架有SSH、SSM、SpringMVC等&#xff0c;作为一个课题程序采用SSH框架也可以&#xff0c;SSM框架也可以&#xff0c;SpringMVC也可以。SSH框架是属于重量级…...

关于最新MySQL9.0.1版本zip自配(通用)版下载、安装、环境配置

一、下载 从MySQL官网进行下载MySQL最新版本&#xff0c;滑到页面最下面点击社区免费版&#xff0c;&#xff08;不是企业版&#xff09; 点击完成后选择自己想要下载的版本&#xff0c;选择下载zip压缩&#xff0c;不用debug和其他的东西。 下载完成后进入解压&#xff0c;注…...

【Halcon】例程讲解:基于形状匹配与OCR的多图像处理(附图像、程序下载链接)

1. 开发需求 在参考图像中定义感兴趣区域&#xff08;ROI&#xff09;&#xff0c;用于形状匹配和文本识别。通过形状匹配找到图像中的目标对象位置。对齐多幅输入图像&#xff0c;使其与参考图像保持一致。在对齐后的图像上进行OCR识别&#xff0c;提取文本和数字信息。以循环…...

B站推荐模型数据流的一致性架构

01 背景 推荐系统的模型&#xff0c;通过学习用户历史行为来达到个性化精准推荐的目的&#xff0c;因此模型训练依赖的样本数据&#xff0c;需要包括用户特征、服务端推荐的视频特征&#xff0c;以及用户在推荐视频上是否有一系列的消费行为。 推荐模型数据流&#xff0c;即为…...

不安全物联网的轻量级加密:综述

Abstract 本文综述了针对物联网&#xff08;IoT&#xff09;的轻量级加密解决方案。这项综述全面覆盖了从轻量级加密方案到不同类型分组密码的比较等多个方面。同时&#xff0c;还对硬件与软件解决方案之间的比较进行了讨论&#xff0c;并分析了当前最受信赖且研究最深入的分组…...

mysql_init的概念和使用案例

mysql_init 是 MySQL C API 中的一个函数&#xff0c;用于初始化一个 MYSQL 结构&#xff0c;这个结构在后续的 MySQL 数据库操作中会被频繁使用。mysql_init 的调用是建立与 MySQL 数据库连接的第一步。 函数原型&#xff1a; MYSQL *mysql_init(MYSQL *mysql);参数说明&…...

3GPP R18 MT-SDT

Rel-17 指定MO-SDT允许针对UL方向的数据包进行小数据包传输。对于DL,MT-SDT(即DL触发的小数据)可带来类似的好处,即 通过不转换到 RRC_CONNECTED来减少信令开销和UE功耗,并通过允许快速传输(小而少见的)数据包(例如用于定位)来减少延迟。 在R17中,NR_SmallData_INACTIVE的工…...

时频转换 | Matlab暂态提取变换transient-extracting transform一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 时频转换 | Matlab暂态提取变换transient-extracting transform一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x x(1:5120); % 本数据只选择5120个点进行分析 fs 6400 ; % 数据采样频…...

.NET Framework 逐渐过时,.NET 8和 .NET 9引领未来

随着科技的不断进步&#xff0c;软件开发的工具和技术也在不断更新换代。.NET Framework&#xff0c;曾是微软的旗舰开发平台&#xff0c;曾经在软件开发领域占据了主导地位。然而&#xff0c;随着技术的演变和开发需求的变化&#xff0c;.NET Framework逐渐显得力不从心&#…...

从虚拟到现实:AI与AR/VR技术如何改变体验经济?

引言&#xff1a;体验经济的崛起 在当今消费环境中&#xff0c;产品与服务早已不再是市场竞争的唯一焦点&#xff0c;能够提供深刻感知和独特体验的品牌&#xff0c;往往更能赢得消费者的青睐。这种转变标志着体验经济的崛起。体验经济不仅仅是简单的买卖行为&#xff0c;而是通…...

在K8S中,Ingress该如何使用?

在Kubernetes中&#xff0c;Ingress是一种API对象&#xff0c;它提供了对外部请求进入集群内部服务的一种统一入口和路由机制。Ingress控制器是一个运行在集群中的守护进程&#xff0c;它监听Ingress对象的变化并配置相应的负载均衡器或代理服务&#xff0c;以便根据定义的规则…...

Ubuntu24.04安装NVIDIA驱动及工具包

Ubuntu24.04安装NVIDIA驱动及工具包 安装nvidia显卡驱动安装cuda驱动安装cuDNN安装Anaconda 安装nvidia显卡驱动 NVIDIA 驱动程序&#xff08;NVIDIA Driver&#xff09;是专为 NVIDIA 图形处理单元&#xff08;GPU&#xff09;设计的软件&#xff0c;它充当操作系统与硬件之间…...

【每日学点鸿蒙知识】组件封装通用方法、callback和await性能对比、Web组件下拉刷新、hsp包报错、WebView圆角

1、HarmonyOS 自定义的组件如何封装一些通用的属性和方法&#xff0c;例如 Java 中的继承&#xff1f; export class Animal{name:stringage:stringconstructor(name:string,age:string) {this.name namethis.age age} }export class Person extends Animal{reading:stri…...

Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!

文章目录 说个问题&#xff08;很严重&#xff01;&#xff01;&#xff01;&#xff09;写个方案会Python看这里Python环境搭建不存在多行合并存在多行合并 不会Python看这里 说个问题&#xff08;很严重&#xff01;&#xff01;&#xff01;&#xff09; 平时处理Excel表格…...

Web Bluetooth API 开发记录

搞了一天的蓝牙串口协议被几个软件和AI带沟里面去了。 1.00001101-0000-1000-8000-00805f9b34fb 是spp协议。但是我用的称是使用的49535343-fe7d-4ae5-8fa9-9fafd205e455蓝牙低功耗spp协议 2.推荐一款软件Android-nRF-Connect github地址&#xff1a;https://github.com/Nor…...

python基础知识(二)

元组 元组与列表类似&#xff0c;不同之处在于&#xff0c;元组的元素不能修改&#xff0c;元组使用()。 集合 集合是一个无序且不重复的元素列表。 基本功能是 进行成员关系测试和删除重复元素。 创建集合使用大括号或者set()函数。 例子&#xff1a; 注意&#xff1a;创建一…...

【每日学点鸿蒙知识】初始化BigInt、包体积瘦身、Tabs嵌套Grid、老年化适配、Release打包失败

1、HarmonyOS 在一个类中&#xff0c;怎么初始化一个BigInt类型的属性&#xff1f; 可以通过BigInt关键字来初始化&#xff0c;如&#xff1a; let a BigInt(1); let b BigInt("2"); 关于Uint8Array与string互转&#xff0c;示例&#xff1a; // string 转Uint8…...

Android service framework笔记

1. 网络摘录如何添加一个Application Framework Service(一)(without native code) 如何添加一个Application Framework Service(二)(with native code) 2.书籍摘录...

安全攻防:中间人攻击

1. 中间人攻击定义 中间人攻击&#xff08;简称MITM&#xff09;是攻击者在进行网络通信的双方中间&#xff0c;分别与两端建立独立的联系&#xff0c;并进行数据嗅探甚至篡改&#xff0c;而通信的双方却对中间人毫不知情&#xff0c;认为自己是直接在与对端通信。2. 常见中间人…...

【Linux基础知识系列】第十一篇-Linux系统安全

Linux系统安全是指通过一系列技术和管理措施&#xff0c;保护Linux系统免受各种威胁和攻击&#xff0c;确保系统的完整性、可用性和机密性。随着网络攻击手段的多样化和复杂化&#xff0c;Linux系统安全成为了系统管理员和开发者必须面对的重要课题。本文将从用户认证、权限管理…...

webpack其余配置

webpack搭建本地服务器 首先是要安装一个webpack-dev-server npm install webpack-dev-server -D 安装后在package.json中添加&#xff1a; {"name": "babel_core_demo","version": "1.0.0","main": "index.js"…...

MSYS2 环境配置与 Python 项目依赖管理笔记

#工作记录 MSYS2 环境配置 安装和更新 MSYS2 初始安装 下载并安装 MSYS2&#xff1a; 访问 MSYS2 官方网站 并下载安装包。 按照安装向导完成安装。 更新 MSYS2&#xff1a; 打开 MSYS2 终端&#xff08;MSYS2 MINGW64&#xff09;。 更新包数据库和核心系统包&#xff1…...

OD 算法题 B卷【水果摊小买卖】

文章目录 水果摊小买卖 水果摊小买卖 小王手里有点闲钱&#xff0c;想做点水果买卖&#xff0c;给出两个数组m, n&#xff0c; m[i]表示第i个水果的成本价&#xff0c;n[i]表示第i个水果能卖出的价格&#xff1b;假如现在有本钱k&#xff0c;试问最后最多能赚多少钱&#xff1…...

国防科技大学计算机基础慕课课堂学习笔记

1.信息论 香农作为信息论的这个创始人&#xff0c;给出来了这个信息熵的计算方法&#xff0c;为我们现在的这个生活的很多领域奠定了基础&#xff0c;我第一次听说这个信息熵是在这个数学建模里面的理论学习中有关于这个&#xff1a;决策树的模型&#xff0c;在那个问题里面&a…...

EMC VNXe 存储系统日志收集方法

写在前面 有朋友找来看看VNXe的故障&#xff0c;这种问题总是要收集日志&#xff0c;顺便这里也分享给大家。 注意&#xff0c;VNXe和VNX 属于完全不同的产品&#xff0c;不要看名字很类似&#xff0c;操作系统已经完全重构了&#xff0c;如果说是否有联系&#xff0c;大概就…...

以人类演示视频为提示,学习可泛化的机器人策略

25年5月来自清华大学、上海姚期智研究院和星动纪元&#xff08;RoboEra&#xff09;公司的论文“Learning Generalizable Robot Policy with Human Demonstration Video as a Prompt”。 最近的机器人学习方法通​​常依赖于从通过遥操作收集的大量机器人数据集中进行模仿学习…...

验证负载均衡与弹性伸缩

什么是弹性伸缩&#xff08;Auto Scaling&#xff09;&#xff1f; 弹性伸缩是指 云计算平台根据实时负载自动调整计算资源&#xff08;如服务器实例、容器Pod&#xff09;数量&#xff0c;以确保系统在高峰时保持稳定&#xff0c;在低谷时节省成本。 什么时候会触发弹性伸缩&…...

智慧充电:新能源汽车智慧充电桩的发展前景受哪些因素影响?

全球能源结构转型与碳中和目标的推进&#xff0c;新能源汽车产业迎来爆发式增长&#xff0c;而智慧充电桩作为其核心基础设施&#xff0c;发展前景备受关注。智慧充电不仅关乎用户充电体验的优化&#xff0c;更是电网平衡、能源效率提升的关键环节。 然而&#xff0c;其发展并…...

前后端分离开发 和 前端工程化

来源&#xff1a;黑马程序员JavaWeb开发教程&#xff0c;实现javaweb企业开发全流程&#xff08;涵盖SpringMyBatisSpringMVCSpringBoot等&#xff09;_哔哩哔哩_bilibili 前后端混合开发&#xff1a; 需要使用前端的技术栈开发前端的功能&#xff0c;又需要使用Java的技术栈…...