• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > GreenDao教程1,greendao教程

GreenDao教程1,greendao教程

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了greendao教程,greendao使用教程,greendao3.0使用教程,greendao,greendao使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

GreenDao教程1,greendao教程


最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个框架还是不错的。直接面向对象的,可以通过对对象的操作,实现数据的存储。

但是官网上的API是在不敢恭维,文档写的很糙,看了半天,才搞懂一系列的流程。在此进行一下纪念。免得那天需要修改的时候,一脸懵逼。直接上干货

官网地址:http://greenrobot.org/greendao/
Github地址:https://github.com/greenrobot/greenDAO

GreenDao 优点:

1.性能高,号称Android最快的关系型数据库
2.内存占用小
3.库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制
4.支持数据库加密 greendao支持SQLCipher进行数据库加密 有关SQLCipher可以参考这篇博客Android数据存储之Sqlite采用SQLCipher数据库加密实战
5.简洁易用的API

第一步:将项目需要的工程库进行引用

注:GreenDao可以自定义数据库操作对象的路径示例如下:

此处路径对应的是APP的gradle文件,android节点内填写。

属性介绍:
schemaVersion--> 指定数据库schema版本号,迁移等操作会用到;
daoPackage --> dao的包名,包名默认是entity所在的包;
targetGenDir --> 生成数据库文件的目录;

第二步:创建一个实体类

 1 @Entity
 2 public class ClassInfoBean {
 3     //表ID,是每一条记录的唯一标识,自增
 4     @Id(autoincrement = true)
 5     private Long tabid;
 6     /** 班型ID */
 7     private Integer classTypeId;
 8     /** 班型编码 */
 9     private String classTypeCode;
10     /** 班型名称 */
11     private String classTypeName;
12     /** 分期 */
13     private Integer period;
14     /** 年级 */
15     private Integer gradeId;
16     /** 科目 */
17     private Integer subjectId;
18     /** 学科 */
19     private Integer subjectProductId;
20 }

相关注解说明:

- 实体@Entity注解

schema:告知GreenDao当前实体属于哪个schema

active:标记一个实体处于活跃状态,活动实体有更新、删除和刷新方法

nameInDb:在数据库中使用的别名,默认使用的是实体的类名

indexes:定义索引,可以跨越多个列

createInDb:标记创建数据库表

基础属性注解

@Id:主键 Long 型,可以通过@Id(autoincrement = true)设置自增长

@Property:设置一个非默认关系映射所对应的列名,默认是使用字段名,例如:@Property(nameInDb = “name”)

@NotNull:设置数据库表当前列不能为空

@Transient:添加此标记后不会生成数据库表的列

索引注解

@Index:使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束

@Unique:向数据库添加了一个唯一的约束

关系注解

@ToOne:定义与另一个实体(一个实体对象)的关系

@ToMany:定义与多个实体对象的关系

注:定义实体类的时候,不用定义get和set方法。只需写方法名和相关注解,在后面进行点击Make Project或者Make Module 'app',就会自动在实体类中生成get和set方法,同时会在自己设定的目录下看到生成的三个类文件:- DaoMaster- DaoSession- UserDao。(没有在app的gradle里面设置targetGenDir 路径的,默认生成目录如下图)

第三步:在application中需要初始化数据库相关操作的对象

 1 private static WeexApplication application;
 2     @Override
 3     public void onCreate() {
 4         super.onCreate();
 5         application = this;
 6         initGreenDao();
 7     }
 8     public static WeexApplication getApplication() {
 9         return application;
10     }
11     private SQLiteDatabase db;
12     private DaoSession mDaoSession;
13     private void initGreenDao() {
14         DaoMaster.DevOpenHelper mHelper;
15         DaoMaster mDaoMaster;
16         // 通过DaoMaster 的内部类 DevOpenHelper,你可以得到一个便利的SQLiteOpenHelper 对象。
17         // 可能你已经注意到了,你并不需要去编写「CREATE TABLE」这样的 SQL 语句,因为greenDAO 已经帮你做了。
18         // 注意:默认的DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,意味着这将导致数据的丢失。
19         // 所以,在正式的项目中,你还应该做一层封装,来实现数据库的安全升级。
20         mHelper = new DaoMaster.DevOpenHelper(this, "notes-db", null);
21         db = mHelper.getWritableDatabase();
22         // 注意:该数据库连接属于DaoMaster,所以多个 Session 指的是相同的数据库连接。
23         mDaoMaster = new DaoMaster(db);
24         mDaoSession = mDaoMaster.newSession();
25     }
26     public DaoSession getDaoSession() {
27         return mDaoSession;
28     }
29     public SQLiteDatabase getDb() {return db;}

 

至此greendao的使用的相关配置已经全部配置完毕。下次会为大家介绍通过使用greenDao来实现数据库的增删改查等操作。

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • GreenDao教程1,greendao教程

相关文章

  • 2017-05-26Android Studio 2.0 beta 7 发布
  • 2017-05-26Android逆向之旅---解析编译之后的Resource.arsc文件格式
  • 2017-05-26Android动画三部曲之一 View Animation & LayoutAnimation
  • 2017-05-26Android客户端性能优化(魅族资深工程师毫无保留奉献)
  • 2017-05-26Android--获取系统时间的方式介绍
  • 2017-05-26Android横竖屏切换小结,Android屏切换小结
  • 2017-05-26Android四种常见设计模式说明
  • 2017-05-26Android自定义控件(二),android自定义控件
  • 2017-05-26配置gradle.properties,gradle.properties
  • 2017-05-26回顾自定义view三个构造函数,回顾view构造函数

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 【lushengduan】01、搭建安卓App开发环境 编写程序HelloWorld,lushengduan安卓
    • 一个难倒 3年 android开发经验 " 工程师 " 的 "bug"
    • Android5.0开发范例大全 读书笔记(六),android5.0范例
    • 测试经验总结之--测试员的角色
    • Android动画解析(一)—— Frame Animation(帧动画)
    • Android属性系统简介,android属性简介
    • Linux内核系列—8.操作系统开发之时钟中断,linux内核
    • 自定义水平进度条样式:黑色虚线,进度条虚线
    • 安卓开发 第一篇 关于依赖注入框架dagger2的使用和理解
    • Android 数据库SQLite 写入SD卡,androidsqlite

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有