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

Java Room与SQLite如何交互

在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.jsqmd.com/news/43105/

相关文章:

  • 11月17日日记
  • 第三十一天
  • wsl 常用命令
  • AI模型的github——ModelScope.co和Hugging Face.cn
  • 屋顶望月
  • 逆向基础--C++ 运算符 (05)
  • 团队管理与技术驱动
  • 日总结 27
  • 随缘打赏
  • java linux 中文
  • java linux jdk
  • 用 Go 进行验证码识别
  • Spring AI Alibaba 项目源码学习(十)-Interceptor
  • 用 Swift 进行验证码识别
  • 20232311 2025-2026-1 《网络与系统攻防技术》实验六实验报告
  • 线程池的概念
  • 奶牛快传服务调整公告
  • 从零实现 REINFORCE/GRPO —— 大模型推理强化微调实践
  • java for linux 下载
  • 13 个 pytest 宝藏插件推荐!(存存存)
  • iOS开发Linux
  • 手撸大模型的分布式训练:深刻理解大模型训练的“起飞”原理
  • XHORSE XZBT42EN 2-Button HON.D PCBs for Honda Fit XR-V Jazz City 2018-2022 (5pcs/lot)
  • 事件循环其实很简单!
  • 从0到1:揭秘LLM预训练前的海量数据清洗全流程
  • AI技术落地实践
  • Day22flex布局
  • CF2169A题解
  • re.compile为什么能提高速度?
  • 从 0 搭建 LLM 不再难!这个 PyTorch 项目帮你吃透大模型底层逻辑