GreenDao 3.0使用

来源:互联网 发布:木马编程 编辑:程序博客网 时间:2024/06/10 20:56

GreenDao
官网:http://greenrobot.org/greendao/ 
GreenDao github:https://github.com/greenrobot/greenDAO
AndroidDebugDatabase: https://github.com/amitshekhariitbhu/Android-Debug-Database


GreenDAO简介:
GreenDAO是一个开源的Android ORM,使SQLite数据库的开发变得有趣。它减轻开发人员处理低级数据库需求,并节省开发时间。SQLite是一个令人敬畏的嵌入式关系数据库。不过,编写SQL和解析查询结果是相当乏味和耗时的任务。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),GreenDAO可以将它们从这些映射中释放出来。这样,您可以使用简单的面向对象的API来存储、更新、删除和查询Java对象。


GreenDAO的功能:
  • 最高性能(可能是Android最快的ORM); 我们的基准也是开源的
  • 易于使用的功能强大的API
  • 最小的内存消耗
  • 图书馆大小(<100KB),以保持您的建立时间较低,并避免65k方法限制
  • 数据库加密:GreenDAO支持SQLCipher,以保护用户的数据安全

Android Studio如何开始使用GreenDAO:
1、您需要添加greenDAO Gradle插件并添加greenDAO库:
//在你的root build.gradle 文件中加入:buildscript {    repositories {        jcenter()        mavenCentral() // add repository    }    dependencies {        classpath 'com.android.tools.build:gradle:2.3.0'        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin    }} //在你的app projects build.gradle 文件中加:apply plugin: 'com.android.application'apply plugin: 'org.greenrobot.greendao' // apply plugin dependencies {    compile 'org.greenrobot:greendao:3.2.2' // add library}

2、在Application中初始化数据库
    // 通过 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();


3、在app项目build.gradle添加数据库版本
//数据库db版本greendao {    schemaVersion 1}

此外,greendao配置元素支持多种配置选项:
  • schemaVersion:当前版本的数据库模式。这被 OpenHelpers类用于在模式版本之间迁移。如果您更改了实体/数据库模式,则必须增加该值。默认为1。
  • daoPackage:生成的DAO,DaoMaster和DaoSession的包名称。 默认为源实体的包名称。
  • targetGenDir:生成源应存储在的位置。 默认为构建目录( build generated source greendao)中生成的源文件夹。
  • generateTests:  设置为true以自动生成单元测试。
  • targetGenDirTests:  应存储生成的单元测试的基本目录。默认为 src androidTest java
4、实体和注释
@Entitypublic class User {    @Id(autoincrement = true)    private Long id;     @Property(nameInDb = "USERNAME")    private String name;     @NotNull    private int repos;     @Transient    private int tempUsageCount; }

@Entity注解标记了一个Java类作为GreenDAO一个presistable实体

@Id注释选择 long / long属性作为实体ID。在数据库方面,它是主要的关键。参数autoincrement  是使ID值不断增加的标志(不重复使用旧值)。

@Property允许您定义属性映射到的非默认列名称。如果缺少,greenDAO将以SQL-ish方式使用字段名称(大写字母,下划线而不是骆驼案例,例如 customName将成为 CUSTOM_NAME)。注意:您当前只能使用内联常量来指定列名。

@NotNull使该属性在数据库端成为“NOT NULL”列。通常使用@NotNull标记原始类型(long,int,short,byte)是有意义的,而具有包装类(Long,Integer,Short,Byte))的可空值。

@Transient标记要从持久性排除的属性。使用这些临时状态等。或者,您也可以使用来自Java transient关键字。

5、数据库操作
    //    DaoSession daoSession = ((App) getApplication()).getDaoSession();    mUserDao = daoSession().getUserDao();    //插入    User mUser = new User(id, "anye3");    mUserDao.insert(mUser);        //删除    mUserDao.deleteByKey(id);        //更新    User mUser = new User(id, "anye080" + id);    mUserDao.update(mUser);        //查询所有    List users = mUserDao.loadAll();    

AndroidDebugDatabase功能:
  • 查看所有数据库。
  • 查看应用程序中使用的共享首选项中的所有数据。
  • 在给定的数据库上运行任何sql查询来更新和删除您的数据。
  • 直接编辑数据库值。
  • 直接编辑共享首选项。
  • 删除数据库行和共享首选项。
  • 搜索您的数据。
  • 数据排序
  • 下载数据库。

将其添加到您的应用程序的build.gradle中

debugCompile'c​​om.amitshekhar.android : debug- db : 1.0.0 '

使用debugCompile它只会编译在你的调试版本,而不是在你的发行版apk。
就这样,只需启动应用程序,您将在logcat中看到如下所示的条目:
  • D / DebugDB:在浏览器中打开http://XXX.XXX.X.XXX:8080
  • 您也可以通过调用该方法从代码中获取调试地址的URL DebugDB.getAddressLog();
现在打开浏览器中提供的链接。
重要:
  • 您的Android手机和笔记本电脑应连接到同一个网络(Wifi或LAN)。
  • 如果你使用它通过usb,运行 adb forward tcp:8080 tcp:8080
你会看到这样的东西:




0 0
原创粉丝点击