赞
踩
(1)一个人只要自己不放弃自己,整个世界也不会放弃你.
(2)天生我才必有大用
(3)不能忍受学习之苦就一定要忍受生活之苦,这是多么痛苦而深刻的领悟.
(4)做难事必有所得
(5)精神乃真正的刀锋
(6)战胜对手有两次,第一次在内心中.
(7)好好活就是做有意义的事情.
(8)亡羊补牢,为时未晚
(9)科技领域,没有捷径与投机取巧。
(10)有实力,一年365天都是应聘的旺季,没实力,天天都是应聘的淡季。
(11)基础不牢,地动天摇
(12)写博客初心:成长自己,辅助他人。当某一天离开人世,希望博客中的思想还能帮人指引方向.
(13)编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~
(1)是SQlite数据库的抽象
(2)为了更加流畅的访问SQLite数据库
(1)只需要使用注解即可以完成增删改查
(2)生成增删改查代码,它所生成的代码是在编译期完成的。
(3)生成的代码做了很多的优化
(4)使用了事务控制
/** * @author XiongJie * @version appVer * @Package com.gdc.kotlinproject.database * @file * @Description: * (1)@Entity注解在编译期生成代码 * @date 2021-6-4 15:15 * @since appVer */ @Entity class Student() { /** * 主键唯一并自增 */ @PrimaryKey(autoGenerate = true) var id : Int = 0 /** * 1.懒加载 * 2.字段别名,如果不使用别名,默认使用属性名,加了别名,优先级更高,就使用别名的名称 * name="Student_name" */ @ColumnInfo(name = "name") lateinit var name:String @ColumnInfo(name = "age") var age:Int = 0 /** * 1.次构造调用主构造 * :this() */ constructor(name:String,age:Int):this(){ this.name = name this.age = age } }
/** * @author XiongJie * @version appVer * @Package com.gdc.kotlinproject.database * @file * @Description: * (1)@Dao标记数据库的访问对象,即数据库的增删改查 * @date 2021-6-4 15:24 * @since appVer */ @Dao interface StudentDao { /** * 1.可变参数使用 * vararg students:Student */ @Insert fun insertStudents(vararg students:Student) @Update fun updateStudents(vararg students: Student) //1.删除全部 @Query("DELETE FROM student") fun deleteAllStudents() //1.查询全部 @Query("SELECT * FROM student ORDER BY ID DESC") fun queryAllStudents() : List<Student> }
/** * 1.数据表与实体指定 * java数组: entities = {} * kt数组:entities = [] * * 2.数据库版本号设置 * version数据库版本号 * * 3.返回数据库操作Dao * Dao是对数据库的增删改查 * * 4.创建数据库与获取数据库 * * 5.需要成为RoomDatabase的子类 * */ @Database(entities = [Student::class],version = 1) abstract class StudentDatabase : RoomDatabase(){ abstract fun getStudentDao() : StudentDao //派生(单例模式) companion object{ //1.允许为空 private var INSTANCE : StudentDatabase ? = null /** * 2.创建数据库获取数据库 * (1)给Application使用 */ fun getDatabase(context : Context) : StudentDatabase ? { if(null == INSTANCE){ /** * 2.1::class.java是因为room底层是由java产现的,因此需要.java * 如果底层是由kotlin语言编写的,就不需要这么麻烦 * * 2.2允许在主线程中运行 * allowMainThreadQueries() */ INSTANCE = Room.databaseBuilder(context,StudentDatabase::class.java,"student_database.db") .allowMainThreadQueries() .build() } return INSTANCE } /** * 获取数据库 */ fun getDataBase() : StudentDatabase? = INSTANCE } }
感谢您的细心阅读,您的鼓励是我写作的不竭动力!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。