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

阿里云做的网站程序长沙网络推广网站制作

阿里云做的网站程序,长沙网络推广网站制作,苏州建设职业技术学院招聘信息网站,wordpress 插件数据目录 1、SQLite数据库 目的: 基本操作: 缺点: 解决: 2、ROOM持久性库 目的: 优点: 导入依赖: 主要组件: ​编辑 使用步骤: a.定义数据实体 b.定义数据访问对象(接…

目录

1、SQLite数据库

目的:

基本操作:

缺点:

解决:

2、ROOM持久性库

目的:

优点:

导入依赖:

主要组件:

​编辑

使用步骤:

a.定义数据实体

b.定义数据访问对象(接口)

c.定义数据库类

d.实例化并操作数据库


1、SQLite数据库

目的:

保存重复数据&结构化数据

基本操作:

  • 定义架构的协定
  • 创建数据库
  • 信息添加到数据库
  • 从数据库读取信息
  • 从数据库删除信息
  • 更新数据库
  • 保留数据库连接,一般Activity的onDestroy()中关闭数据库

缺点:

android.database.sqlite  软件包提供Android上使用数据库所需的API,但是API级别较低

  • 没有针对原始SQL查询的编译时验证,耗时又易错
  • 需要使用大量样本代码在SQL查询和数据对象之间转换

解决:

强烈建议使用Room持久性库作为抽象层访问SQLite数据库中信息

2、ROOM持久性库

目的:

将数据保存到本地数据库

在SQLite上提供一个抽象层,以便充分利用SQLite&流畅访问数据库

优点:

  • 提供针对SQL查询的编译时验证
  • 提供方便注释,可最大限度减少重复和容易出错的代码样板
  • 简化数据库迁移路径

导入依赖:

讲下面依赖项添加到build.gradle文件

dependencies {val room_version = "2.6.1"implementation("androidx.room:room-runtime:$room_version")annotationProcessor("androidx.room:room-compiler:$room_version")// To use Kotlin annotation processing tool (kapt)kapt("androidx.room:room-compiler:$room_version")// To use Kotlin Symbol Processing (KSP)ksp("androidx.room:room-compiler:$room_version")// optional - Kotlin Extensions and Coroutines support for Roomimplementation("androidx.room:room-ktx:$room_version")// optional - RxJava2 support for Roomimplementation("androidx.room:room-rxjava2:$room_version")// optional - RxJava3 support for Roomimplementation("androidx.room:room-rxjava3:$room_version")// optional - Guava support for Room, including Optional and ListenableFutureimplementation("androidx.room:room-guava:$room_version")// optional - Test helperstestImplementation("androidx.room:room-testing:$room_version")// optional - Paging 3 Integrationimplementation("androidx.room:room-paging:$room_version")
}

主要组件:

  • 数据库类(Database):用于保存数据库&外界访问数据库
  • 数据实体(Entities):表
  • 数据访问对象(Dao):提供数据库增删改查的方法

使用步骤:

a.定义数据实体

@Entity
data class User(@PrimaryKey val uid: Int,@ColumnInfo(name = "first_name") val firstName: String?@ColumnInfo(name = "last_name") val lastName: String?
)

b.定义数据访问对象(接口)

@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@Insertfun insertAll(vararg users: User)@Deletefun delete(user: User)
}

c.定义数据库类

  • 带有@Database注解,注解相关联 数据实体
  • 该类为抽象类,继承并扩展RoomDatabase
  • 定义获取Dao类的抽象方法
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {abstract fun userDao(): UserDao
}

d.实例化并操作数据库

val db = Room.databaseBuilder(applicationContext,AppDatabase::class.java, "database-name").build()val userDao = db.userDao()
val users: List<User> = userDao.getAll()

http://www.fp688.cn/news/158784.html

相关文章:

  • 做设计必须收藏的网站如何做公司网站推广
  • 做推广送网站免费建站做企业推广
  • 网红营销优势百度快照优化培训班
  • 苏州城乡建设网站海淀区seo全面优化
  • 有个可以做图片的网站seo站长查询
  • 一站式手机网站制作福州网站开发公司
  • 长春百度seo排名鞍山seo公司
  • 个人网页设计欣赏网站2022年小学生新闻摘抄十条
  • 网站tag聚合怎么做网站优化关键词公司
  • 网络有限公司seo代码优化有哪些方法
  • 金山网页设计泉州网站seo公司
  • 沈阳优化网站公司百度网盘会员
  • 网站空间独立ip企业推广软文
  • 怎么做自己的视频网站百度快照搜索引擎
  • 做网站按钮营销渠道有哪些
  • 景安企业网站建设2023年度最火关键词
  • 市建设与管理局网站杭州网络推广有限公司
  • 做网站要求高吗西安网
  • 青岛网站建设平台公司如何做网络推广营销
  • 马云早期在政府做网站重庆网站seo服务
  • 这是我自己做的网站吗谷歌搜索引擎优化
  • 雄安网站建设怎么做网站赚钱
  • 做儿童交互网站360指数在线查询
  • 全球军事新闻网站衡水网站seo
  • 中介专门做别墅的网站网址模板建站
  • 小说网站签约作者应该怎么做活动推广宣传方案
  • html好看的网站搜狗站长平台主动提交
  • 网站建设及推广好做吗uc浏览器网页版入口
  • wordpress好用的插件上海做网站优化
  • 牡丹江最新信息网0453海淀区seo引擎优化多少钱