当前位置: 首页 > 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.gsyq.cn/news/52545.html

相关文章:

  • wsl 常用命令
  • 逆向基础--C++ 运算符 (05)
  • 日总结 27
  • 2025.11.16 萌熊
  • 线程池的概念
  • java for linux 下载
  • iOS开发Linux
  • XHORSE XZBT42EN 2-Button HON.D PCBs for Honda Fit XR-V Jazz City 2018-2022 (5pcs/lot)
  • AI技术落地实践
  • Day22flex布局
  • CF2169A题解
  • re.compile为什么能提高速度?
  • 从 0 搭建 LLM 不再难!这个 PyTorch 项目帮你吃透大模型底层逻辑
  • initrans参数在oracle高并发环境下的作用
  • DAG-有向无环图-拓扑排序
  • 1090 : 分解因数 25-11-17
  • NOIP 模拟赛 9
  • info linux
  • 浅谈 Manacher
  • 基于MIMO系统的SCMA稀疏码多址接入和MPA消息传递算法matlab仿真
  • NOIP 模拟赛 8
  • 读书笔记:“外部表”的进阶使用,它主要解决了三个核心问题:如何切换文件、多用户怎么办,以及一个非常酷的玩法——把系统命令变成表。
  • [CF 2166D] Marble Council
  • DP 复习
  • AI评价11月17号
  • 避雷:aicodemirror.com --- 酒干倘卖无
  • 9-线性学习
  • AT AGC003 题解
  • Oracle故障处理:aix 5.3 ml6安装10.2.0.1 rac报错
  • Hive SQL循环与MapReduce的关系