android中简单便捷使用GreenDao本地数据库及采坑之路

  

在开发过程中,有时候我们需要使用SQLite数据库去本地存储一些临时文件,之前,我们的做法是通过SQLiteOpenHelper实现创建数据库,以及迭代开发中的数据库数据 内容 字段 变更时处理。

优点

1.通常我们在使用GreenDao的时候,我们只需定义数据模型,GreenDao框架将创建数据对象(实体)和DAO(数据访问对象),能够节省部分代码。
2.不向性能妥协,使用了GreenDao,大多数实体可以以每秒几千个实体的速率进行插入,更新和加载。
3.GreenDao支持加密数据库来保护敏感数据。
4.微小的依赖库,GreenDao的关键依赖库大小不超过100kb.
5.如果需要,实体是可以被激活的。而活动实体可以透明的解析关系(我们要做的只是调用getter即可),并且有更新、删除和刷新方法,以便访问持久性功能。
6.GreenDao允许您将协议缓冲区(protobuf)对象直接保存到数据库中。如果您通过protobuf通话到您的服务器,则不需要另一个映射。常规实体的所有持久性操作都可以用于protobuf对象。所以,相信这是GreenDao的独特之处。
7.自动生成代码,我们无需关注实体类以及Dao,因为GreenDao已经帮我们生成了。

GreenDao使用

1.在工程目录下build.gradle下添加插件

buildscript { 

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath ‘com.android.tools.build:gradle:3.1.2‘
        classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2‘ // 添加插件 更好支持GreenDao

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

  

然后Sync Now即可。

2.在项目目录下的build.gradle下添加插件依赖

apply plugin: ‘com.android.application‘
apply plugin: ‘org.greenrobot.greendao‘

  接下来继续添加依赖库

dependencies {
    implementation fileTree(dir: ‘libs‘, include: [‘*.jar‘])
    implementation ‘com.android.support:appcompat-v7:28.0.0-rc01‘
    implementation ‘com.android.support.constraint:constraint-layout:1.1.2‘
    testImplementation ‘junit:junit:4.12‘
    androidTestImplementation ‘com.android.support.test:runner:1.0.2‘
    androidTestImplementation ‘com.android.support.test.espresso:espresso-core:3.0.2‘
    implementation ‘org.greenrobot:greendao:3.2.2‘ // 添加库
}

  

再接下来就是初始化GreenDao配置,在app下的build.gradle目录下

greendao {
        schemaVersion 1 //当前数据库版本
    }

  到这里为止,GreenDao的基本配置就差不多完成了。

采坑之路:

之前开发中遇到订单ID 与  @Index(unique = true)//设置唯一性

框架中唯一性的值有冲突,导致长链接中断的问题,开发过程中要注意,此性质类似于主键ID,但不等同于主键。

By:杨

原文地址:https://www.cnblogs.com/widgetbox/p/12397559.html

时间: 2024-11-09 00:07:15

android中简单便捷使用GreenDao本地数据库及采坑之路的相关文章

Android中简单活动窗口的切换--Android

本例实现Android中简单Activity窗口切换:借助intent(意图)对应用操作(这里用按钮监听)等的描述,Android根据描述负责找对应的组件,完成组件的调用来实现活动的切换……案例比较简单直接附上代码了哈. 1.建两个Activity类,分别为MainActivity.java和GuideActivity.java…… MainActivity.java(核心文件): package livetelecast.thonlon.example.cn.thonlonliveteleca

Android中简单实现选择图片并裁剪

在android中选择图片是一个很常见的功能,图片的来源通常情况下是从相机获取和从相册获取两种. 先来写一个简单的选择按钮和一个能显示图片的ImageView <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent&qu

Android 开发之应届狗从掉洞到填坑之路

在开发了几个项目之后我决定写篇文章分享一下一路走来的经验教训.一.在开发中的话慢慢你会理解(如果觉得专业知识警示不想看可看本人写的二部分一点感悟,颇为精彩!希望给予你收获,嘿嘿!)1.好代码像好的段子,不需要多余的解释.如果你的代码是不解自明的,那么大多数情况下,它并不需要注释和文档.在使用任何第三方库之前都要三思,这件事非常严肃,别人不维护了怎么办,突然改别的需求了又咋办,自己没进步不知道原理咋办,是不是觉得自己要亲力亲为呢,如果学习了别人的原理去使用,对自己是一大突破,那天自己也能封装个呢,

oracle11g数据库安装采坑记录

第一处坑: 解决方案: 原文:https://blog.csdn.net/yhj198927/article/details/49178279 1.打开oracle的"Net Manager" 2.打开"监听程序" 3.打开"数据库服务" 4.点击"添加数据库" 5.填写相关信息 "全局数据库名"和"SID"填写在"Database Configuration Assitant

数据库的脱坑之路

1.MySQL的介绍,安装,使用方法 2.数据库之字段类型和约束条件 3.MySQL之外键简介和修改表 4.MySQL之查询语句的基本操作 5.pymysql模块的介绍 6.mysql之视图.触发器.事物.存储过程.函数.流程控制.索引与慢查优化 原文地址:https://www.cnblogs.com/jiangxianseng/p/12099924.html

android 本地数据库sqlite的封装

单机android   sqlite数据库的实现,这个数据库可与程序一起生成在安装包中 一.下载sqlite3.exe文件 二.运行 cmd 转到sqlite3.exe 所在目录  运行 sqlite3.exe 数据库名.db     然后会出现sqlite>的命令提示符 输入创建表的语句, create table 表名('列','列'...):(注意: 要在结束部分加  分号 )     此时会在sqlite3.exe 所在目录,出现所建数据库的文件 三.如果想在Android中运行的话,需

Android中WebView的JavaScript代码和本地代码交互的三种方式

一.Android中WebView的漏洞分析 最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视,关于这个漏洞,这里就不多做解释了,可能有的同学早就了解了,本来想写一篇文章详细介绍一下,但是网上的知识太多了,而且都很详细,就没弄了,这里大致简单明了的说几句: 第一.漏洞产生的原因 这个漏洞导致的原因主要是因为Android中WebView中的JS访问本地方法的方式存在缺陷,我们做过交互的都知

Android中图片的三级缓存策略

一.简介 现在的Android应用程序中,不可避免的都会使用到图片,如果每次加载图片的时候都要从网络重新拉取,这样不但很耗费用户的流量,而且图片加载的也会很慢,用户体验很不好.所以一个应用的图片缓存策略是很重要的.通常情况下,Android应用程序中图片的缓存策略采用"内存-本地-网络"三级缓存策略,首先应用程序访问网络拉取图片,分别将加载的图片保存在本地SD卡中和内存中,当程序再一次需要加载图片的时候,先判断内存中是否有缓存,有则直接从内存中拉取,否则查看本地SD卡中是否有缓存,SD

Windows Phone本地数据库(SQLCE):1、介绍(翻译)(转)

一只大菜鸟,最近要学习windows phone数据库相关的知识,找到了一些比较简短的教程进行学习,由于是英文的,顺便给翻译了.本身英语水平就不好,估计文中有不少错误,如果有不幸读到的童鞋请保持对翻译质量的质疑,多多指教. 这是原文地址:http://windowsphonegeek.com/tips/Windows-Phone-Mango-Local-Database%28SQL-CE%29-Introduction 正文如下: 我开始了一个新的系列——Windows Phone Mango本