首页 > 其他 > 详细

greenDAO优点及使用详解

时间:2021-03-12 16:59:35      阅读:30      评论:0      收藏:0      [点我收藏+]

一、关于greenDAO

greenDAO是一个开源的Android ORM,它让SQLite数据库的开发再次变得有趣。它使开发人员免于处理低级数据库要求,同时节省了开发时间。SQLite是一个很棒的嵌入式关系数据库。尽管如此,编写SQL和解析查询结果仍然是非常繁琐且耗时的任务。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),greenDAO使您摆脱了这些麻烦。这样,您可以使用简单的面向对象的API来存储,更新,删除和查询Java对象。

技术分享图片                       

二、greenDAO优点

最佳性能 (可能是 Android 中最快的 ORM) ,基准测试也是开源的;
易于使用的功能强大的 api,涵盖关系和连接;
最小的内存消耗;
小型库大小(< 100KB) ,以保持较低的构建时间,并避免65k 方法限制;
数据库加密:greenDAO 支持 SQLCipher 来保证用户数据的安全;
强大而活跃的社区交流支持,相关资料比较完善;
许多顶级的Android应用程序都依赖greenDAO,其中一些应用程序的安装量超过1000万,更证明了其可靠性。

三、 引入greenDAO

首先在项目目录下的build.gradle中配置

repositories {
// GreenDao仓库
mavenCentral()
}
dependencies {
// GreenDao插件
classpath org.greenrobot:greendao-gradle-plugin:3.2.2
}

然后在app目录下的build.gradle中配置

//GreenDao插件
apply plugin: org.greenrobot.greendao
dependencies {
implementation org.greenrobot:greendao:3.2.2
}
android {
greendao {

schemaVersion 1 //数据库版本号 每次升级数据库都需要改变版本,只能增加

daoPackage com...green //设置DaoMaster、 DaoSession、Dao包名

targetGenDir src/main/java //设置DaoMaster、DaoSession、Dao目录
}
}

四、创建数据库及增删改查操作

先创建一个实体类

@Entity
public class UserIm {
@Id
private Long id;
private String userId;
private String name;
private String url;
}

其中Long  id对应数据表中的主键,是一条数据的唯一标识。

创建完之后,点击Make Project图标

 技术分享图片

会自动生成get、set方法,同时在上述填写的目录中生成Dao文件

 技术分享图片

在Application中初始化

private DaoMaster daoMaster;
private static DaoSession daoSession;
private DaoMaster.DevOpenHelper devOpenHelper=null;

devOpenHelper=new DaoMaster.DevOpenHelper(getApplicationContext(),"数据库名称.db",null);
//实例化DaoMaster对象
daoMaster=new DaoMaster(devOpenHelper.getWritableDb());
//实例化DaoSession对象
daoSession=daoMaster.newSession();

//通过此方法,进行增删改查
public static DaoSession getDaoSession(){
return daoSession;
}

插入数据

UserImDao userDao = ServerObserver.getDaoSession().getUserImDao();
userDao.insert(new UserIm(null,userId, name, url));

删除数据

//清空所有数据
DaoSession daoSession = ServerObserver.getDaoSession();
Database database = daoSession.getUserImDao().getDatabase();
DaoMaster.dropAllTables(database, true);
DaoMaster.createAllTables(database, true);
//删除某一条数据
userDao.deleteByKey(id);

修改数据

List<UserIm> userIms; //所有的user
userIms = userDao.queryBuilder().where(UserImDao.Properties.UserId.eq(userId)).list();
if (userIms.size()>0){
//
userIms.get(0).setName(title);
userIms.get(0).setUrl(url);
userDao.update(userIms.get(0));
}

查看数据

List<UserIm> userIms; //所有的user
userIms = userDao.queryBuilder().where(UserImDao.Properties.UserId.eq(targetId)).list();

greenDAO优点及使用详解

原文:https://www.cnblogs.com/yd-mobile/p/14524375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!