【安卓开发】数据库Room框架的学习和使用

简介: 【安卓开发】数据库Room框架的学习和使用

简单的轻量级框架,SQL语句不复杂。步骤如下:

添加依赖

dependencies {
    def room_version="2.3.0"
    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
}

创建实体类

@Entity //实体类注解
public class Data{
    @PrimaryKey(autoGenerate = true)//主键自动递增
    private int id;
    @ColumnInfo(name="title")//指定列名,不指定的话列名等于变量名
    private String title;
    @ColumnInfo(name="tt")
    private String tt;
}

创建接口

S Q L查询语句,多个条件用a n d , o r连接

@Dao
public interface DataDao {
    @Insert
    void insertData(Data data);
    @Query("delete from data")
    void deleteAll();
    @Query("select * from data")
    List<Data> findAll();
    @Query("delete from data where id =:pos")
    void deleteById(int pos);
    @Query("select * from data where tt=:t1 and title=:t2")
    List<Data> find_by(String t1,String t2);
}

创建数据库

单例模式

@Database(entities = {Data.class,Person.class},version = 1,exportSchema = false)
public abstract class NDatabase extends RoomDatabase {
    private static NDatabase INSTANCE;
    static public NDatabase getDatabase(Context context){
        if(INSTANCE==null) {
            INSTANCE= Room.databaseBuilder(context,NDatabase.class,"n_database")
                    .allowMainThreadQueries().build();
            //数据库名 n_database
            //表名 Data和Person
        }
        return INSTANCE;
    }
    public abstract DataDao getDataDao();
    public abstract PersonDao getPersonDao();
}

获取数据库实例和接口

private NDatabase nDatabase;
private DataDao dataDao;
nDatabase=NDatabase.getDatabase(this);
dataDao=nDatabase.getDataDao();

增删改查

调用实例后的数据库对象里dao接口的对应方法,比如

List<Data> t=dataDao.findAll();



目录
相关文章
|
16天前
|
JavaScript Java 关系型数据库
平面设计课程在线学习|基于SSM+vue的平面设计课程在线学习平台系统的设计与实现(源码+数据库+文档)
平面设计课程在线学习|基于SSM+vue的平面设计课程在线学习平台系统的设计与实现(源码+数据库+文档)
35 0
|
16天前
|
JavaScript 小程序 Java
学习辅助|基于SSM+vue的学习辅助系统的设计与实现(源码+数据库+文档)
学习辅助|基于SSM+vue的学习辅助系统的设计与实现(源码+数据库+文档)
37 0
|
16天前
|
JavaScript Java 关系型数据库
学习平台|基于Springboot+vue的学习平台系统的设计与实现(源码+数据库+文档)
学习平台|基于Springboot+vue的学习平台系统的设计与实现(源码+数据库+文档)
39 0
|
16天前
|
安全 JavaScript Java
党务学习|基于SprinBoot+vue的大学生党务学习平台(源码+数据库+文档)
党务学习|基于SprinBoot+vue的大学生党务学习平台(源码+数据库+文档)
24 0
|
3天前
|
SQL 存储 关系型数据库
sql学习数据库
SQL(Structured Query Language)是用于管理关系型数据库的标准编程语言。学习SQL数据库涉及理解数据库的基本概念、SQL语言的结构和语法,以及如何使用SQL来查询、插入、更新
|
3天前
|
SQL 数据库
sql数据库学习多久
SQL数据库学习的时间长度因个人基础、学习目标和投入时间而异。一般来说,可以分为以下几个阶段: 1. **入门阶段**:如果每天能够投入1\\~2小时的时间去学习并动手练习,通常一周可以达到入门
|
3天前
|
SQL 存储 数据可视化
sql学习数据库
SQL(Structured Query Language)是用于管理关系型数据库的标准编程语言。学习SQL数据库涉及理解数据库的基本概念、SQL语言的组成以及如何使用SQL进行数据的查询、操作和处理
|
3天前
|
SQL 存储 数据库
48. 【Android教程】数据库:SQLite 的使用
48. 【Android教程】数据库:SQLite 的使用
7 1
|
8天前
|
存储 编解码 API
Android Media Framework(一)OpenMAX 框架简介
OpenMAX IL是Khronos Group为嵌入式和移动设备设计的低层级接口,用于统一调用音频、视频和图像编解码器,确保跨平台兼容性。它包括Core API(管理组件加载和方法调用)和Component API(组件实现,如源、接收器、编解码器等)。组件通过端口进行数据交互,客户端使用Core API加载和控制组件。Android引入OMX IL以支持不同芯片上的编解码器。组件状态包括Loaded、Idle、Executing和Invalid。组件架构涉及参数配置、命令处理和缓冲区管理,数据交换通过回调函数完成,端口持有预分配或组件自分配的缓冲区。
|
9天前
|
XML Java 数据库连接
利用MyBatis框架操作数据库2
利用MyBatis框架操作数据库
19 2