Android GreenDao使用教程3.2.2
来源:互联网 发布:杰刚队长 知乎 编辑:程序博客网 时间:2024/04/23 20:19
一、Greendao简介
Greendao是一款用于数据库创建与管理的框架,由于原生SQLite语言比较复杂繁琐,使得不少程序员不得不去学习SQLite原生语言,但是学习成本高,效率低下,所以不少公司致力于开发一款简单的数据库管理框架,较为著名的就有Greendao和ORMLite,但是就数据分析来看,Greendao的效率是高于ORMLite及其他框架的,是目前该行业的领先者。也因为Greendao的使用方法简便,且效率高使得其成为目前使用最为广泛的数据库管理框架,这也是广大程序员的福音。
二、Greendao的使用方法
1.添加依赖
在bulid.gradle文件下的dependencies下添加所需依赖
compile 'org.greenrobot:greendao:3.2.2' // add librarycompile 'org.greenrobot:greendao-generator:3.2.2'
2.在bulid.gradle下进行配置
apply plugin: 'org.greenrobot.greendao'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' }}
3.对greendao的generator生成文件进行配置
greendao { schemaVersion 1 //版本 daoPackage '生成文件包名' // 一般为app包名+生成文件的文件夹名 targetGenDir 'src/main/java' //生成文件路径}
4.创建实体类,生成dao文件
@Entitypublic class dayStep { @Id private long id; private String date; private int step;}
注意:编写完实体类以后在实体类界面下按下Ctrl+F9(Make project),程序会自动编译生成dao文件,生成的文件一共有三个。
5.使用Greendao
(1)创建一个application类,在application中完成DaoSession的初始化,避免以后重复初始化,便于使用。
public class MyApplication extends Application { public static MyApplication instances; @Override public void onCreate() { super.onCreate(); instances = this; setDatabase(); } public static MyApplication getInstances(){ return instances; } /** * 设置greenDao */ private void setDatabase() { // 通过 DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的 SQLiteOpenHelper 对象。 // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为 greenDAO 已经帮你做了。 // 注意:默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。 // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。 mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);//第二项为数据库名称,自己取 db = mHelper.getWritableDatabase(); // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。 mDaoMaster = new DaoMaster(db); mDaoSession = mDaoMaster.newSession(); } public DaoSession getDaoSession() { return mDaoSession; } public SQLiteDatabase getDb() { return db; }}
(2)Greendao操作数据库文件(增,删,改,查)
/** * 增 */ public void insert() { String date = new Date().toString(); mDayStep = new dayStep(null,date,0);//第一个是id值,因为是自增长所以不用传入 dao.insert(mDayStep); } /** * 查 */ public void Search() { //方法一 List<dayStep> mDayStep = dao.loadAll(); //方法二 //List<dayStep> mDayStep = dao.queryBuilder().list(); //方法三 惰性加载 //List<dayStep> mDayStep = dao.queryBuilder().listLazy(); for (int i = 0; i < mDayStep.size(); i++) { String date = ""; date = mDayStep.get(i).getDate(); Log.d("cc", "id: "+i+"date: "+date); } } /** * 删 * @param i 删除数据的id */ public void delete(long i) { dao.deleteByKey(i); //当然Greendao还提供了其他的删除方法,只是传值不同而已 } /** *改 * @param i * @param date */ public void correct(long i,String date) { mDayStep = new dayStep((long) i,date,0); dao.update(mDayStep); }
三、Greendao注解含义
(1)@Entity 实体标识
@nameInDb 在数据库中的名字,如不写则为实体中类名
@indexes 索引
@createInDb 是否创建表,默认为true,false时不创建
@schema 指定架构名称为实体
@active 无论是更新生成都刷新
(2)@Id 每条数据对应的位置,必写项
(3)@Property(nameInDb = "") 表示该属性将作为表的一个字段,其中nameInDb属性值是在数据库中对应的字段名称,可以自定义字段名,例如可以定一个跟实体对象字段不一样的字段名
(4)@NotNull 不为null
(5)@Unique 唯一约束 该属性值必须在数据库中是唯一值
(6)@ToMany 一对多
(7)@OrderBy 排序
(8)@ToOne 一对一 关系表
(9)@Transient 不保存于数据库
(10)@generated 由greendao产生的构造函数或方法
四、Greendao特性
- 精简
- 高效率
- 低功耗
- 使用方便
- Android GreenDao使用教程3.2.2
- Android 配置使用 GreenDao 教程
- GreenDao 3.2.0使用教程
- Android 关于greenDao的使用教程
- Android ORM框架GreenDao使用教程
- Android greenDao入门以及使用教程
- GreenDao 3.2.0 的基本使用教程
- greenDao的使用教程
- GreenDao 使用教程 一
- GreenDao框架使用教程
- GreenDao 使用教程 二
- GreenDao 使用教程
- greendao使用教程
- Android greenDao 使用教程(一)源码编译与使用
- Android greenDao 使用教程(二) 在Eclipse 下编译使用greenDao
- Android ORM数据库之GreenDao使用教程及源码分析
- Android 简单了解ORM/GreenDao(GreenDao3.2.0使用教程)
- ANDROID GreenDao 使用例子 Android GreenDAO Simple
- Java经典项目集锦 高清完整 pdf版
- 小石桥的祭祀活动与电影《寻梦环游记》
- 深圳昕动网格科技有限公司声明:从未有转让、售卖、出让股份的意向和行为!
- Windows7系统安装java 配置环境变量
- java final关键字
- Android GreenDao使用教程3.2.2
- MTK程序编译
- openstack安装部署时遇到的错误记录及解决方法
- Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
- 收藏一个html获取参数值的方法
- Idea创建bpmn文件没有png图片解决办法
- 艺术应该被欣赏,而不是被研究
- 快速构建Spring Boot项目
- B树和B+树