Room学习一:概览

作者: crossroads | 来源:发表于2019-03-01 11:38 被阅读3次

前言

Room是对SQLite的封装,官方推荐使用Room。该文档来自google官方文档
该文档里的代码是kotlin。

三个重要组件

** Database:** 数据库持有者,后续直接看代码把
Entity: 表示数据库中的一个表格(table)
DAO: 包含访问数据库的方法

框架大概样子

1. 表格
@Entity
data class User(
    @PrimaryKey var uid: Int,
    @ColumnInfo(name = "first_name") var firstName: String?,
    @ColumnInfo(name = "last_name") var lastName: String?
)
2.SQL语句,访问操作数据
@Dao
interface UserDao {
    @Query("SELECT * FROM user")
    fun getAll(): List<User>

    @Query("SELECT * FROM user WHERE uid IN (:userIds)")
    fun loadAllByIds(userIds: IntArray): List<User>

    @Query("SELECT * FROM user WHERE first_name LIKE :first AND " +
           "last_name LIKE :last LIMIT 1")
    fun findByName(first: String, last: String): User

    @Insert
    fun insertAll(vararg users: User)

    @Delete
    fun delete(user: User)
}
3.数据库
@Database(entities = arrayOf(User::class), version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}
4. 获得数据库实例,建议单例
val db = Room.databaseBuilder(
            applicationContext,
            AppDatabase::class.java, "database-name"
        ).build()

相关文章

  • Room学习一:概览

    前言 Room是对SQLite的封装,官方推荐使用Room。该文档来自google官方文档。该文档里的代码是kot...

  • Jetpack学习-Room

    个人博客http://www.milovetingting.cn Jetpack学习-Room Room是什么 R...

  • Android Room 基础

    本文学习Room的基本使用,参考 Android Room with a View - Kotlin 这篇文章。目...

  • 学习SceneKit之几何体概览

    学习SceneKit之几何体概览 学习SceneKit之几何体概览

  • 一、Docker学习——概览

    本文章相对比较适合想简单了解Docker的程序员阅读,如果想专业学习Docker,找专业本书吧。。 一、学习目的 ...

  • 一、机器学习概览

    机器学习 机器学习系统的类型 机器学习有多种类型,可以根据如下规则进行分类: 是否在人类监督下进行训练(super...

  • Room学习整理

    目录 [TOC] 这不是一篇很好的入门文章,仅做记录使用,更好的还是直接参考文末的官方向导 Room Room 是...

  • Room学习笔记

    Room是android Architecture Components中简化数据库读写的组件 集成方法: imp...

  • 课程表设计

    room* 课程 room_course* 课程 room_banner* 课程

  • JetPack之Room的学习

    1.正题 2020年学习计划就是学习jetpack:lifecycle,room,viewModel,liveDa...

网友评论

    本文标题:Room学习一:概览

    本文链接:https://www.haomeiwen.com/subject/traruqtx.html