SQLite数据库 增加查看删除

一:数据库工具类

package com.jwt.mysqltiledemo;import android.annotation.SuppressLint;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import org.json.JSONObject;public class DataStorageHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME = "DataStorage.db";private static final int DATABASE_VERSION = 1;private static final String TABLE_NAME = "data_table";private static final String COLUMN_ID = "_id";private static final String COLUMN_DATA = "data";private static final String COLUMN_TIMESTAMP = "timestamp";public DataStorageHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);}@Overridepublic void onCreate(SQLiteDatabase db) {String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("+ COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"+ COLUMN_DATA + " TEXT,"+ COLUMN_TIMESTAMP + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP" + ")";db.execSQL(CREATE_TABLE);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// Drop older table if existeddb.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);// Create tables againonCreate(db);}/*** 存储数据** @param data 要保存的数据,以JSON字符串形式*/public void save_data(String data) {SQLiteDatabase db = this.getWritableDatabase();try {JSONObject json = new JSONObject(data);  // 验证是否为有效的JSONString insertQuery = "INSERT INTO " + TABLE_NAME + " (" + COLUMN_DATA + ") VALUES (?)";db.execSQL(insertQuery, new Object[]{data});} catch (Exception e) {Log.e("DataStorageHelper", "Error while saving data: " + e.getMessage());}}/*** 加载并删除最旧的数据** @return 最旧的数据项*/@SuppressLint("Range")public String load_data() {SQLiteDatabase db = this.getWritableDatabase();String oldestData = null;try (Cursor cursor = db.query(TABLE_NAME, new String[]{COLUMN_DATA}, null, null, null, null, COLUMN_TIMESTAMP + " ASC", "1")) {if (cursor != null && cursor.moveToFirst()) {oldestData = cursor.getString(cursor.getColumnIndex(COLUMN_DATA));// 删除这条记录String deleteQuery = "DELETE FROM " + TABLE_NAME + " WHERE " + COLUMN_DATA + " = ?";db.execSQL(deleteQuery, new Object[]{oldestData});}} catch (Exception e) {Log.e("DataStorageHelper", "Error while loading and deleting data: " + e.getMessage(), e);} finally {// 确保数据库连接被关闭(虽然在这个例子中由框架管理)db.close();}return oldestData;}
}

二:使用

package com.jwt.mysqltiledemo;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import org.json.JSONObject;public class MainActivity extends AppCompatActivity {private DataStorageHelper dataStorageHelper;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);dataStorageHelper = new DataStorageHelper(this);// 插入JSON数据JSONObject jsonObject = new JSONObject();try {jsonObject.put("_id", "1");jsonObject.put("data_table", "Alice");jsonObject.put("data", 25);jsonObject.put("timestamp", System.currentTimeMillis());} catch (Exception e) {e.printStackTrace();}// 存储数据storeData(jsonObject.toString());// 加载并删除最旧的数据String oldestData = loadAndDeleteOldestData();// 打印最旧的数据if (oldestData != null) {Log.d("======MainActivity", "Oldest Data: " + oldestData);} else {Log.d("======MainActivity", "No data to load");}}private void storeData(String data) {// 使用 DataStorageHelper 存储数据dataStorageHelper.save_data(data);Log.d("======MainActivity", "Data stored successfully");}private String loadAndDeleteOldestData() {// 使用 DataStorageHelper 加载并删除最旧的数据return dataStorageHelper.load_data();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482655.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Robocasa】Code Review

文章目录 OverviewalgoInitializationImportant Class MethodsTrain LoopTest Time ConfigsdemoConfig FactoryConfig StructureConfig Locking默认锁定状态配置修改的上下文管理器 dataset示例数据集对象参数说明 model基础模块EncoderCoreVisualCoreScanCore随机化器 (Random…

阅读笔记--知识蒸馏

1.一些基本概念 教师模型(Teacher Model):预训练复杂神经网络,高精度,计算存储开销大。学生模型(Student Model):简单参数少推理快的模型,目标从教师模型获取知识&#…

【Maven Helper】分析依赖冲突案例

目录 Maven Helper实际案例java文件pom.xml文件运行抛出异常分析 参考资料 《咏鹅》骆宾王 鹅,鹅,鹅,曲项向天歌。 白毛浮绿水,红掌拨清波。 骆宾王是在自己7岁的时候就写下了这首杂言 Maven Helper A must have plugin for wor…

一些基于宏基因组的巨型病毒研究

Introduction 上次已经介绍了巨型病毒的一些基本内容,也讲到了不依赖培养的方法是从环境样本中发现巨型病毒基因组成的不可或缺的工具。可以通过基因组解析宏基因组学来从环境序列数据中获取 NCLDV 基因组并进行深入研究如功能基因,宿主,进化…

李宏毅深度强化学习入门笔记:Actor-Critic

李宏毅-深度强化学习-入门笔记:Actor-Critic 一、深度强化学习简介二、Policy-based 方法(一)学习一个 Actor(二)Deep Learning 的 3 个步骤1. 确定 Function:作为 Actor 的神经网络2. 确定 Actor 的好坏3.…

基于Java Springboot成人教育APP且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…

知乎启用AutoMQ替换Kafka,开辟成本优化与运维提效新纪元

作者:知乎在线架构组 王金龙 关于知乎 知乎公司,成立于 2010 年 8 月 10 日,于 2011 年 1 月 26 日正式上线,是中文互联网的高质量问答社区和创作者聚集的原创内容平台。 知乎起步于问答,而超越了问答。知乎以「生…

mysql数据库varchar截断问题

用了这么多年mysql数据库,才发现varchar是可以截断的,而且是在我们线上数据库。个人觉得dba的这个设置是非常有问题的,用户往数据库里存东西,就是为了以后用的,截断了存放,数据不完整,就用不了了…

SeggisV1.0 遥感影像分割软件【源代码】讲解

在此基础上进行二次开发,开发自己的软件,例如:【1】无人机及个人私有影像识别【2】离线使用【3】变化监测模型集成【4】个人私有分割模型集成等等,不管是您用来个人学习还是公司研发需求,都相当合适,包您满…

MySQL底层概述—9.ACID与事务

大纲 1.ACID之原子性 2.ACID之持久性 3.ACID之隔离性 4.ACID之一致性 5.ACID的关系 6.事务控制演进之排队 7.事务控制演进之排它锁 8.事务控制演进之读写锁 9.事务控制演进之MVCC 10.事务隔离级别之隔离级别的类型 11.事务隔离级别之和锁的关系 12.事务隔离级别之隔…

基于 SpringBoot 的新冠密接者跟踪系统:如何实现高效信息推送功能

第2章 程序开发技术 2.1 Mysql数据库 为了更容易理解Mysql数据库,接下来就对其具备的主要特征进行描述。 (1)首选Mysql数据库也是为了节省开发资金,因为网络上对Mysql的源码都已进行了公开展示,开发者根据程序开发需要…

手撸了一个文件传输工具

在日常的开发与运维中,文件传输工具是不可或缺的利器。无论是跨服务器传递配置文件,还是快速从一台机器下载日志文件,一个高效、可靠且简单的文件传输工具能够显著提高工作效率。今天,我想分享我自己手撸一个文件传输工具的全过程…

基于Java Springboot电子书阅读器APP且微信小程序

一、作品包含 源码数据库全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信开发者工具 数…

【AI系统】AI 编译器基本架构

AI 编译器基本架构 在上一篇文章中将 AI 编译器的发展大致分为了 3 个阶段,分别为 1)朴素编译器、2)专用编译器以及 3)通用编译器。 本文作为上一篇文章 AI 编译器架构的一个延续,着重讨论 AI 编译器的通用架构。首先…

华为关键词覆盖应用市场ASO优化覆盖技巧

在我国的消费者群体当中,华为的品牌形象较高,且产品质量过硬,因此用户基数也大。与此同时,随着影响力的增大,华为不断向外扩张,也逐渐成为了海外市场的香饽饽。作为开发者和运营者,我们要认识到…

SuperMap GIS基础产品FAQ集锦(20241202)

一、SuperMap iDesktopX 问题1:请问一下,iDesktopX11.2.1如何修改启动界面 11.2.0 【解决办法】参考帮助文档的“自定义启动界面”内容:https://help.supermap.com/iDesktopX/zh/SpecialFeatures/Development/DevelopmentTutorial/UserCust…

Java基础访问修饰符全解析

一、Java 访问修饰符概述 Java 中的访问修饰符用于控制类、方法、变量和构造函数的可见性和访问权限,主要有四种:public、protected、default(无修饰符)和 private。 Java 的访问修饰符在编程中起着至关重要的作用,它…

浪潮X86服务器NF5280、8480、5468、5270使用inter VROC Raid key给NVME磁盘做阵列

Inter VROC技术简介 Intel Virtual RAID on CPU (Intel VROC) 简单来说就是用CPU的PCIE通道给NVME硬盘做Raid 更多信息可以访问官方支持页面 Raid Key 授权,即VROC SKU 授权主要有用的有2个标准和高级,仅Raid1的授权我暂时没见过。 标准 VROCSTANMOD …

【Pytorch】torch.view与torch.reshape的区别

文章目录 一. 简介:二. Pytorch中Tensor的存储方式2.1 Pytorch中张量存储的底层原理2.2 Pytorch张量步长(stride)属性 三. 对视图(view)的理解四. view()与reshape()的比较4.1 对view()的理解4.1.1 (1)如何理解满足条件 stride[i] stride[i1…

光伏电站设计排布前的准备

1、确定安装地点 地理位置:了解安装地点的经纬度,这对于确定太阳辐射角度和强度非常重要,海拔越高,阳光辐照就越高,比较适合安装光伏电站,根据地理位置还可以确定光伏板的安装倾角是多少,可以进…