zoukankan      html  css  js  c++  java
  • 安卓开发之Room实体定义数据

     使用Room实体定义数据

       在Room库中,entities(实体)代表着相关字段集.每一个entity(实体)代表着相关联数据库中的一个表.entity 类必须通过Database 类中的entities数组引用.

      定义实体类的方式:

    为了使room库能够访问到字段,实体中字段的访问权限要设为public,或者是为字段提供getter和setter方法。(getter和setter方法,基于Room中的JavaBeans约定。)

    @Entity
    public class User {
        @PrimaryKey
        public int id;
    
        public String firstName;
        public String lastName;
    }

    构造函数:

    实体可以有一个空构造函数(如果相应的DAO类可以访问每个持久化字段)或者一个包含参数的构造函数,其参数与实体中的字段的类型和名称匹配。 Room可以使用完整构造参数,或只接收某些字段的构造函数。

    主键:

    每个实体必须至少定义一个字段作为主键。即使只有一个字段,仍然需要使用@PrimaryKey注释来注释该字段。此外,如果要Room为实体分配自动ID,可以设置@ PrimaryKey的  autoGenerate属性。如果实体具有复合主键,则可以使用@Entity批注的primaryKeys属性,如以下代码段所示:

    @Entity(primaryKeys = {"firstName", "lastName"})
    public class User {
        public String firstName;
        public String lastName;
    }

    列名:

    与tableName属性类似,Room使用字段名称作为数据库中的列名称。如果希望列具有不同的名称,请将@ColumnInfo注释添加到字段中,如以下代码段所示:

    @Entity(tableName = "users")
    public class User {
        @PrimaryKey
        public int id;
    
        @ColumnInfo(name = "first_name")
        public String firstName;
    
        @ColumnInfo(name = "last_name")
        public String lastName;
    }

    表名:

    默认情况下,Room使用类名作为数据库表名。如果希望表具有不同的名称,请设置@Entity批注的tableName属性,如以下代码段所示:

    @Entity(tableName = "users")
    public class User {
        // ...
    }

     

     

  • 相关阅读:
    网站收录(2)-财经网站
    网络爬虫(13)-Scrapy持久化存储
    网络爬虫(12)-Scrapy框架Post请求发送
    Excel常用函数
    VBA基础
    网站收录(1)-行业研究
    网络爬虫(11)-Scrapy分布式
    网络爬虫(10)-进程、线程
    log
    关于camera 智障的问题
  • 原文地址:https://www.cnblogs.com/adressian/p/10422231.html
Copyright © 2011-2022 走看看