Java Room与SQLite如何交互

news/2025/11/17 23:32:39/文章来源:https://www.cnblogs.com/8688seo/p/19234823

在Android开发中,Room是一个持久性库,它提供了抽象层,使得开发者可以更方便地处理数据库操作。SQLite是一个轻量级的数据库引擎,它是Android内置的数据库解决方案。要在Android应用中使用Room和SQLite交互,你需要遵循以下步骤:

添加依赖项

在你的项目的build.gradle文件中,添加以下依赖项:

dependencies {def room_version = "2.4.2" // 使用最新版本implementation "androidx.room:room-runtime:$room_version"kapt "androidx.room:room-compiler:$room_version"implementation "androidx.sqlite:sqlite-android:$room_version"
}
定义实体类

创建一个实体类,该类将映射到数据库中的表。使用@Entity注解标记该类,并使用@PrimaryKey注解标记主键字段。

import androidx.room.Entity;
import androidx.room.PrimaryKey;@Entity
public class User {@PrimaryKey(autoGenerate = true)private int id;private String name;private int age;// 构造函数、getter和setter方法
}
创建Dao接口

创建一个DAO接口,该接口定义了访问数据库所需的方法。使用@Dao注解标记该接口,并使用@Insert@Update@Delete@Query注解标记方法。

import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import androidx.room.Update;@Dao
public interface UserDao {@Insertvoid insert(User user);@Updatevoid update(User user);@Deletevoid delete(User user);@Query("SELECT * FROM User")List<User> getAllUsers();
}
创建Database类

创建一个抽象类,该类继承自RoomDatabase。使用@Database注解标记该类,并使用@TypeConverters注解注册类型转换器(可选)。

import androidx.room.Database;
import androidx.room.RoomDatabase;@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {public abstract UserDao userDao();
}
初始化数据库

在你的应用代码中,初始化Room数据库实例。

import android.content.Context;public class AppDatabaseFactory {private static AppDatabase instance;public static synchronized AppDatabase getInstance(Context context) {if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),AppDatabase.class, "app_database").fallbackToDestructiveMigration().build();}return instance;}
}
使用数据库

现在你可以使用AppDatabaseFactory类获取数据库实例,并通过DAO接口执行数据库操作。

AppDatabase db = AppDatabaseFactory.getInstance(context);
UserDao userDao = db.userDao();// 插入数据
User newUser = new User("John Doe", 30);
userDao.insert(newUser);// 查询数据
List<User> users = userDao.getAllUsers();// 更新数据
User updatedUser = new User("John Doe", 31);
userDao.update(updatedUser);// 删除数据
User deletedUser = new User("John Doe", 30);
userDao.delete(deletedUser);

这样,你就可以在Android应用中使用Room和SQLite进行交互了。

文章转自:[《公主》游戏特色内容介绍 ] (https://www.52mwyd.com/news/7816.html)

作者:游戏攻略,转载请注明原文链接:https://www.52mwyd.com/

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

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

相关文章

11月17日日记

1.今天进行java考试做房产信息管理系统开发 2.明天工程实训 3.如何解决http://localhost:8080/ 404的问题

第三十一天

今天的学习聚焦在“路径检索”相关知识,尤其是最短路径的匹配方法,收获特别扎实。 先理清了路径检索的核心两种方法:深度优先搜索(DFS)像走迷宫时一条路走到黑再回溯,优先探完一条分支再换方向;广度优先搜索(B…

wsl 常用命令

wsl安装 wsl --install #会自动安装wsl 和默认Ubuntu#建议将 WSL 默认版本设置为 WSL2,以获得更好的性能和兼容性 wsl --set-default-version 2 #在安装 Ubuntu 之前,更新 WSL 内核也是好习惯 wsl --update#如果要重…

AI模型的github——ModelScope.co和Hugging Face.cn

好的,我来通俗易懂地解释一下 ModelScope 和 Hugging Face 是什么。 您可以把它想象成两个巨大的、开放的“模型应用商店”或“模型图书馆”。1. Hugging Face 核心比喻:AI 模型的 GitHub它是什么? 它是一个全球领先…

逆向基础--C++ 运算符 (05)

逆向基础--C++ 运算符 (05)一.运算符C++的运算符 包括:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、其它运算符。1.1 算术运算符包括:+(加)  -(减)  *(乘)  /(除)  %(取模)  ++(整数值增加…

团队管理与技术驱动

好的,这两个问题是技术管理者核心价值的集中体现。下面我将结合具体实践,系统性地阐述我的管理理念和方法。团队管理与技术驱动 第一部分:技术选型、规划与三者平衡 我的核心理念是:技术是服务于业务和团队的工具,…

日总结 27

RFID,全称为射频识别,是一种利用无线电波进行非接触式自动识别的技术。 你可以把它想象成一个更先进的“条形码”。但与需要直线对准、一次只能扫描一个的条形码不同,RFID具有以下独特优势:非接触式: 无需看见即…

java linux 中文

您提到的“Java Linux 中文”可能是指在 Linux 系统中运行 Java 应用程序,或者与 Java 相关的 Linux 操作。以下是一些与 Java 和 Linux 相关的常见命令和脚本,帮助您更好地在 Linux 环境中使用 Java:一、Java 环境…

java linux jdk

你提到的“Java Linux JDK”可能是指在 Linux 系统上安装和使用 Java 开发环境(JDK)的相关内容。以下是一些常见的 Java 环境安装和管理方法,适用于大多数 Linux 发行版(如 Ubuntu、CentOS、Debian 等)。一、Java…

Mastercam2021软件界面

时间,滴答滴答在消失

用 Python 和 Tesseract OCR 识别复杂验证码

安装依赖首先,确保已安装所需的工具和库。 安装 Tesseract 在 Windows 上,下载安装包并进行安装:Tesseract GitHub。 在 Linux 上,你可以通过以下命令安装: sudo apt-get install tesseract-ocr 安装 Python 库 使…

用 Go 进行验证码识别

安装 Go 和 Tesseract OCR首先,你需要安装 Go 和 Tesseract。 安装 Go:可以从 Go 官方网站 下载并安装。 安装 Tesseract:可以通过以下命令安装 Tesseract OCR。 对于 Ubuntu: sudo apt install tesseract-ocr 对于…

Spring AI Alibaba 项目源码学习(十)-Interceptor

Interceptor 机制分析 请关注微信公众号:阿呆-bot 概述 本文档分析 Spring AI Alibaba Agent Framework 中的 Interceptor(拦截器)机制,包括 ModelInterceptor 和 ToolInterceptor 的设计、实现原理、链式调用机制…

用 Swift 进行验证码识别

安装 Tesseract OCR首先,你需要通过 CocoaPods 来安装 Tesseract OCR 的 Swift 绑定库。首先在项目的根目录下创建一个 Podfile,并添加以下内容: platform :ios, 11.0 target YourAppName do use_frameworks! pod T…

今日复盘

完成了通过ffmpeg将电脑屏幕转为rtsp推流给mediatx服务器,并供给海康威视录像机拉流的实现:ffmpeg -f gdigrab -framerate 15 -video_size 1280x720 -i desktop -c:v libx264 -preset ultrafast -b:v 1500k -maxrate…

2025.11.16 萌熊

2025.11.16 萌熊打! T1 额,显然先手可以退来保留实力,我直接模拟博弈 发现 \(O(1)\) 的 然后每次算一遍就行了 显然有单调性 但没必要二分 T2 额,一眼,感觉我好像在哪见过 然后直接秒了 就是先扫一遍求出到每个点…

在 parse_model 函数中添加了自定义模块支持

第一段代码(已修改版本)在 parse_model 函数中添加了自定义模块支持:n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain# Custom modules support - Added for RFAConv, HSFPN, HATHead integra…

20232311 2025-2026-1 《网络与系统攻防技术》实验六实验报告

实验内容发现靶机Metasploitable2并进行端口扫描、版本扫描以及漏洞扫描等等 利用Vsftpd源码包后门漏洞进行攻击 利用SambaMS-RPC Shell命令注入漏洞 利用Java RMI SERVER命令执行漏洞 利用PHP CGI参数执行注入漏洞实验…