AI智能
改变未来

Android 特别好用的框架 一,数据库GreenDao的使用方法

我们在项目中经常使用到本地数据库,来作为储存方式,今天我们来分享下GreenDao的使用心得

一,配置信息

1.在工程目录下build.gradle下添加插件

repositories {google()jcenter()mavenCentral()}dependencies {classpath \'com.android.tools.build:gradle:4.0.0\'classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version\"classpath \'org.greenrobot:greendao-gradle-plugin:3.3.0\' // 添加插件 更好支持GreenDao}

2.添加依赖库

apply plugin: \'org.greenrobot.greendao\'//dbimplementation \'org.greenrobot:greendao:3.3.0\'

3.配置数据库路径

greendao {schemaVersion 2 //数据库版本,我们添加字段,表这里需要+1daoPackage \'\"包名\".model.db.greendao\'//这里是dao包生成路径,大家可以定义自己的targetGenDir \'src/main/java\'}

好得,配置信息就是这么简单 我们可以Sync Now即可 也可以Rebuild

配置搞好了,我们怎么来使用呢,现在我们在使用之前 我们来了解下GreenDao的结构
1.DaoMaster

DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的Dao类。它具有静态方法来创建表或将他们删除。其内部类OpenHelper和DevOpenHelper是在SQLite数据库中创建模式的SQLiteOpenHelper实现。

2.DaoSession

管理特定模式的所有可用Dao对象,您可以使用其中一个getter方法获取。DaoSession还为实体提供了一些通用的持久性方法,如插入,加载,更新,刷新和删除。最后,DaoSession对象也跟踪一个身份范围。

3.Dao层

数据访问对象(Dao)持续存在并查询实体。对于每个实体,GreenDao生成一个Dao,它比DaoSession有更多的持久化方法,例如:count,loadAll和insertInTx。

4.实体类

持久对象,通常实体是使用标准Java属性(如POJO或JavaBean)来表示数据库的对象。目前不支持Kotlin

二,创建公共方法

1.我们创建一个实体类

@Entitypublic class User implements Serializable {static final long serialVersionUID = 42L;@Id(autoincrement = true)//设置自增长private Long id;private String name;@Generated(hash = 1697332542)public DeviceEntity(Long id, String name) {this.id = id;this.mac = name;}public Long getId() {return this.id;}public void setId(Long id) {this.id = id;}public String getName() {return this.name;}public void setName(String name) {this.name = name;}}

我们需要注意的是添加注释 @Entity 和 @Id(autoincrement = true)之后构造方法和get,set方法会自己生成 rebuild即可

2.封装数据库工具类

object GreenDaoHelper {private const val DB_NAME = \"user\"  //数据库名称private lateinit var daoSession: DaoSessionfun initDB(mContext: Context) {val db = DaoMaster.DevOpenHelper(mContext, DB_NAME).writableDbdaoSession = DaoMaster(db).newSession()}}

3.添加数据

//单个添加fun insert(user: User) {daoSession.userDao.insert(user)}//批量添加fun insert(user: List<User>) {daoSession.userDao.insertInTx(user)}

4.删除数据

//删除单个对象fun delete(user: User) {daoSession.userDao.delete(user)}//删除当前表fun delete() {daoSession.userDao.deleteAll()}

5.修改数据

//修改单个对象fun delete(user: User) {daoSession.userDao.update(user)}

6.查询数据

//查询当前列表所有信息fun select() {daoSession.userDao.loadAll().list}//根据id查询对象fun select(id:Long) {daoSession.userDao.queryBuilder().where(UserDao.Properties.Id.eq(id)}

三,初始化使用

//这个初始化可以写在App类下面,也可以写在MainActivity下,APP启动时候保证调用一次即可GreenDaoHelper.initDB(this)//需要的时候直接调用方法即可var user=User()GreenDaoHelper.insert(user)

以上就是关于GreenDao的基本使用情况了,当然我们还有很多代码可以根据需求自由添加,比如排序查询了,这些都是支持的,好的就写到这里了,不好的地方还望小伙们们多多指教,不明白的小伙伴可以留言

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Android 特别好用的框架 一,数据库GreenDao的使用方法