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关键字。
// 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); //查询所有 Listusers = mUserDao.loadAll();
- 查看所有数据库。
- 查看应用程序中使用的共享首选项中的所有数据。
- 在给定的数据库上运行任何sql查询来更新和删除您的数据。
- 直接编辑数据库值。
- 直接编辑共享首选项。
- 删除数据库行和共享首选项。
- 搜索您的数据。
- 数据排序
- 下载数据库。
将其添加到您的应用程序的build.gradle中
debugCompile'com.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
- GreenDAO 3.0 初次使用
- GreenDao 3.0使用
- 如何使用GreenDAO 3.0
- GreenDao 3.0使用
- GreenDAO 3.0 基本使用
- GreenDao 3.0使用
- greenDao 3.0基本使用
- GreenDao 3.0简单使用
- GreenDao 3.0 的使用
- GreenDao 3.0简单使用
- GreenDao 3.0使用
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- GreenDAO使用
- GreenDao使用
- GreenDao使用
- greenDao 使用
- window DOS命令共享目录
- Filesystem Case-Sensitivity Mismatch
- 轻量级--层叠的侧边栏
- 初识smali
- Html和struct2中select默认值
- GreenDao 3.0使用
- Maven手动依赖jar包到本地仓库
- LiteOS学习第五篇——任务切换
- 使用php的swoole扩展实现数据实时更新(上)
- EndNote的基础学习
- linux exercise 13
- Mysql 经典8小时问题
- 1006. 换个格式输出整数 (15)
- angularjs 使用中的积累