GreenDao数据库带你出坑

java的通用mapper和xml 1.XML环境搭建: 1、确定数据库是否已经创建 2、导入jar包 &核心配置文件 3、创建mapper包,导入Mapper.xml文件 4、创建package包,导入MybatisUtils工具 5、定义JavaBean,修改JavaBean体现多表关系 6、定义Dao&设置Mapper.xml映射 &注册Mapper.xml文件 2.动态SQL:根据不同的条件,拼接不同的SQL语句 3.XML方式-多表查询 3.1案例1:根据UID查询用户... 阅读详情
现在在Android中使用的数据库一般都是用的GreenDao,我们准备使用GreenDao的时候从网上看了很多文章,感觉很多技术点都不是我们关注的重点,经过实践以后觉得好多文章的内容都不太正确。我的这篇文章主要讲GreenDao的三个方面:

1 GreenDao第三方包的引入

2 GreenDao数据加密 数据库存放地址

3 GreenDao数据库升级

  • 1 在Android Studio中导入GreenDao的包:
    设置仓库与插件(Project: build.gradle):这个需要注意是在Project中的gradle文件中设置
buildscript {
    repositories {
        jcenter()  
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.2'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
    }
}

配置依赖 ( Module:app build.gradle ):这个是在应用App下面的中的gradle文件中设置

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin

dependencies {
    compile 'org.greenrobot:greendao:3.2.2' // add library
    compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'//加密库依赖(数据库升级时使用)
}

好了,这就把GreenDao要使用的包都导入进了。

  • 2 导入这个“net.zetetic:android-database-sqlcipher:3.5.7@aar”数据库加密包主要是为了数据库升级的时候使用的。 其实如果你不用数据库升级的话,可以不用导入这个包。
    (如果不手动设置的话会自己生成在这个目录中)
    不设置生成目录
    接下来设置一下数据生成的目录:
greendao {
    schemaVersion 4//数据库版本号
    daoPackage 'com.min.mygreendao.db.gen'//设置DaoMaster、DaoSession、Dao包名
    targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
    //targetGenDirTest:设置生成单元测试目录
    //generateTests:设置自动生成单元测试用例
}

设置数据生成目录
接下来就是得到DaoSession 对象对数据进行操作。其实操作无非是增删改查之类的,这些在网上有很多介绍,这里就不做介绍了。在MySQLiteOpenHelper的第二个参数中可以传递数据库地址,在开发测试环境的时候可以放到data目录中,使用不加密的数据,方便自己查看数据库。上线时改成加密数据库即可。

//        DaoMaster.DevOpenHelper mHelper = new DaoMaster.DevOpenHelper(this, getDbPath(), null);
        //第二个参数可以设置数据库的地址
        MySQLiteOpenHelper mHelper = new MySQLiteOpenHelper(this,getDbPath(),null);
//        SQLiteDatabase db = mHelper.getWritableDatabase();
        //加密
        Database db = mHelper.getEncryptedWritableDb("1234");
        DaoMaster mDaoMaster = new DaoMaster(db);
        DaoSession mDaoSession = mDaoMaster.newSession();
        UserDao userDao = mDaoSession.getUserDao();
        User user=new User();
        user.setName("李四");
        user.setYear(10);
        userDao.save(user);
        List<User> users = userDao.loadAll();
        textView.setText(users.get(0).getName());
  • 3 其实数据库升级很简单,其他很多文章都说的太复杂了,只需要添加两个文件到项目中就可以直接使用。
    这俩个类的下载地址这两个类的下载地址
    必须的两个文件
    MigrationHelper这个类主要是进行数据升级使用的。可惜不是我写的,而是一个外国大神写的。如果升级数据库的话,只需要把GreenDao生成的文件数据添加到这个方法里面的参数即可。
/**
 * Created by Administrator on 2017/9/13.
 *
 * @des 数据库升级
 */
public class MySQLiteOpenHelper extends DaoMaster.OpenHelper {
    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }
    @Override
    public void onUpgrade(Database db, int oldVersion, int newVersion) {
        MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {

            @Override
            public void onCreateAllTables(Database db, boolean ifNotExists) {
                DaoMaster.createAllTables(db, ifNotExists);
            }

            @Override
            public void onDropAllTables(Database db, boolean ifExists) {
                DaoMaster.dropAllTables(db, ifExists);
            }
        }, UserDao.class,TestDao.class);//, UserDao.class 这里可以重复添加文件。
    }
}
好了,这样的话GreenDao的很多问题都已经解决了,接下来就让我们愉快的在项目中添加这个数据库包吧。如果使用中有什么问题可以给我留言。源代码下载地址
Android ORM之GreenDao3.0 使用外部数据库.db文件总结 ORM定义:       对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统.       对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。 内存中的对象之间存 阅读详情

相关推荐

【数据库】greendao的使用(greendao+SQLite)

1.安装SDK(由于之前是java,电脑有jdk环境,省略,SDK需要配置环境,和jdk基本相同,百度就完了)操作 2.安装Android Studio 以上都可以在https://www.androiddevtools.cn/下载 3.开发登录,注册,修改密码功能 要求: 1. 在登录页面增加注册按钮,点击按钮进入注册页面, 2. 使用greendao,设计一个user基类的数据库 3. 注册页面与登录页面风格一致,但是密码输入行有2行,点击注册需要用户名和两个密码是否为空,是否符合之前的账号密

qq_40741719的博客 2502

android sqlite insertorthrow,GreenDao与Room对比以及Android SQLite API优化

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?主流库目前Android主流的ORM相关库可以分为两类,一类是我们熟知的基于SQLite并进行一系列封装和优化的框架,比如GreenDao、Room、DBFlow等;另一类是NoSql数据库(注意这一类是数据库,是SQLite的替代品),比如Realm。NoSqlNoSql database也可以称为no relatio...

weixin_35809747的博客 853

GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&dao目录

相信很多人都用过greenDao 今天 我抽空总结下使用的时候一些小东西吧 废话不多说 下边就GreenDao 的使用遇到的问题以及解决方案记录一下吧。 1.greendao 指定不同的生成目录: Schema 可以制定路径  schema.setDefaultJavaPackageDao(defaultJavaPackageDao) 2.green

angelfishli 2181

记一次使用GreenDao的小“坑”

很多Android开发者选择Greendao作为数据库使用工具,关于greendao的教程网络上也是一大堆,这里就不再介绍,主要是记录在项目中使用greendao出现的一个小问题,greendao的地址如下:greendao 事先说一下,我项目中使用的是greendao3.2.2 出现的主要问题是:NoClassDefFoundError 问题,具体的报错信息如下,这里是部分的,而...

Huawen的博客 339

安卓数据库 GreenDao的使用教程

本文介绍安卓项目从0集成greenDao到使用增删改查的方法; 就是这么简洁精炼!!! 直接上步骤 一. 添加引用 1、app下的build.gradle 文件 ,在 dependencies{} 的最后 添加下面引用: (请根据SDK编译版本选择使用compile 还是 api 还是 implementation) implementation 'org.greenrobot:greend...

zz1017161726的专栏 823

新版gradle 找不到 greendao 报错 android studio 怎样查看导报文件 怎样打开db文件 android greendao 工具类使用以及数据更新

其实green到进行了很多优化,增删改查使用合适的数据结构,这里的updata是根据id这是Long型的,是主键。主键必有的,不染你后面很多更新就不能用 了 补充:重要: 在你修改了数据库部分任何代码都要进行卸载应用,在运行安装,不染很烦人的问题整的你不懂,还有数据库升级也是你晕的地方,最直接简单的办法就是卸载充运行。 其实就是你先根据条件拿到对象,在重新set某个属性,再调用upda...

ZhangJiqun&191cm&85kg 5773

GreenDao3.1用法详解

greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。 GreenDao 优点: 1.性能高,号称Android最快的关系型数据库 2.内存占用小 3.库文件比较小,小于100K 4.支持数据库加密 greendao支持SQLCipher进行数据库加密 5.简洁易用的API Gree

wl1769127285的专栏 1万+

Android数据库开源框架GreenDao分析

前段时间写Demo的时候遇到了数据库的并发问题 Android数据库多线程并发操作异常 ,然后研究了一下 Android中的数据库连接池 。在看相关代码的时候阅读了我们项目使用的数据库框架GreenDao 。哈哈,挺有意思的^ _ ^。 Android原始数据库的使用 创建数据库 public class DatabaseHelper extends SQLiteOpenHelper { ...

stven_king的专栏 1011

GreenDao问题收集

1、no such table 解决方法一:删除卸载应用重新安装 解决方法二:build中升级数据库版本 2、 解决办法:此问题出在一对多的时候,在getList调用前给对象设置session。 3、Error:Execution failed for task ':app:greendao'. > Can't add field `Variable(type=VariableTy...

戒不掉的码瘾 879

Android解决数据库注入漏洞风险的demo

一个Android的demo工程,演示了如何解决数据库注入漏洞问题。 针对3种查询:rawQuery,query,以及LitePal的查询。 更详细的说明,参见相关博客文章:https://blog.youkuaiyun.com/lintax/article/details/79831376

S32K314 EB配置MCAL全模块讲解【Autosar——1 MCU模块详解】持续更新中

FIRC(fast internal RC Oscillator) :高速内部时钟,固定48MHZ;SIRC(Slow Internal RC Oscillator):低速内部时钟,固定32KHZ;FXOSC(Fast Crystal Oscillator Digital Controller):高速外部晶振(8-40MHZ),根据原理图选型进行配置;SXOSC():外部低速外部时钟,固定输入32.768KHZ;PLL_PHIn_CLK:时钟倍频锁相环时钟范围(640-1280MHZ);

qq_40488886的博客 1785

使用GreenDao操作已有的 .db 数据库

使用GreenDao操作已有的 .db 数据库 编者序 如果你项目中使用了GreenDao的话其实一些建库、建表的操作都对你隐藏了,你只根据XXXDao类就可以为所欲为的增删改查了。本篇不会花篇幅讲解如何配置GreenDAO,现在的GreenDAO配置起来简直比之前版本的舒服太多了,不会的自己爬文章学习下,不下十分钟你就可以配置完成。然后再稍微理解下ORM(对象关系映射)框架是个啥就可以开始本文的...

乐翁龙 2269

告别Overleaf!本地LaTeX环境配置:VSCode+TeXLive完全指南(Windows/Mac双平台)

本文详细介绍了如何在Windows和Mac平台上配置本地LaTeX环境,使用VSCode和TeXLive打造高效的专业写作工作流。从TeXLive安装到VSCode插件配置,再到高级技巧与性能优化,帮助用户摆脱Overleaf限制,实现更快速、更私密的学术写作体验。

3c4x5z6v7b的博客 952

greenDao3经常遇到的坑

android数据库框架greenDao相较于其他数据库框架有多快这里就不再赘述了,但事情总是两面的,个人感觉greendao有多快,也就有多坑,话不多说,直接看货: 1、依赖到你的项目里 在项目的根build.gradle添加如下依赖classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’: 在你的module的build.grad...

jack_bear_csdn的博客 3069

别再踩坑了!手把手教你用EB Tresos Studio创建Autosar MCAL工程(含模块配置避坑指南)

本文详细介绍了使用EB Tresos Studio创建Autosar MCAL工程的完整流程,包括工程创建前的关键准备、模块配置的避坑指南以及工程验证与代码生成的实用技巧。通过实战案例和黄金准则,帮助开发者高效完成MCAL工程创建,避免常见错误,提升开发效率。

weixin_42536058的博客 445

告别Qt Creator?手把手教你用VSCode+MinGW调试QT项目(附完整launch.json配置)

本文详细介绍了如何在VSCode中配置完整的QT开发环境,特别是针对使用MinGW编译器的用户。从环境搭建到调试配置,包括生成.pro文件、Makefile,以及配置task.json和launch.json文件,帮助开发者高效调试QT项目。

weixin_27180827的博客 187

GreenDAO数据库升级

深入代码浅析GreenDao升级前言数据库升级需要哪些东西??GreenDao中数据库升级函数从数据库怎么的用法中讲如何修改升级如何避免删库删库问题解决了,那么我怎么升级啊???然后到了一个很关键的东西,修改实体类修改表结构信息添加表升级步骤整理 从代码角度浅析GreenDao的升级 提示 博主:不会随时间而改变的叫热爱 的博客 博客地址:http://blog.youkuaiyun.com/qq_299...

章飞 _906285288的博客 7781

关于Nuttx操作系统

NuttX是一个成熟的实时操作系统

qq_28576837的博客 4092

greendao 默认数据库db 生成路径,以及db文件导出

1、   greendao 不设置自定义路径时,默认生成的路径在系统的data/包名   目录下。 2、由于data目录在真机没有root 情况下,不能访问,可以用模拟器(AS自带模拟器)查看greendao 生成的db 文件 打开DDMS方式:Tools--&gt;Android--&gt;Android Device Monitor 3、打开DDMS发现却打不开data文件,参考此篇...

songzi1228的博客 1万+

FFT中的精度博弈:定点数缩放、块浮点与溢出处理在Vivado IP核中的实践权衡

本文探讨了在Vivado FFT IP核中实现高精度快速傅里叶变换的关键技术,包括定点数缩放策略、块浮点模式及溢出处理机制。通过分析不同精度控制方案的资源开销与性能权衡,为工程师在医疗成像、雷达信号处理等高动态范围应用中优化FFT实现提供实践指导。

melon的博客 1097

基于SpringBoot 3 + Vue 3的全栈民宿预约管理系统设计与实现

文章将详细阐述系统的需求分析、架构设计、数据库设计、核心功能模块的实现(包括用户认证、房源管理、订单流程、支付集成等),并提供关键代码片段,最后对系统进行总结与展望。.requestMatchers("/api/admin/**").hasRole("ADMIN") // 管理员接口。.requestMatchers("/api/auth/**").permitAll() // 认证接口公开。.requestMatchers("/api/public/**").permitAll() // 公开资源。

2201_76125393的博客 273

Android数据库 GreenDao的使用完全解析

转自https://www.jianshu.com/p/53083f782ea2 本文主要从如下几个方面进行讲解 存储的数据库结构 GreenDao的优缺点 GreenDao的使用配置 使用GreenDao实现数据的增删改查 GreenDao的注解使用 GreenDao的关系处理 GreenDao的升级 GreenDao数据库加密 项目地址AserbaosAndroid 总...

code_dream_wq的博客 6737

SAP 清账凭证 完整生成逻辑(超详细原理 + 底层规则 + 分录逻辑 + 互清特殊规则)

【SAP清账凭证核心逻辑摘要】(149字) SAP清账凭证生成遵循两大类型:1)资金往来对冲型(如F-32/F-44互清),强制生成含完整借贷分录的独立凭证,通过AUGDT/AUGBL字段绑定未清项,典型场景如应收冲应付(借:应付账款 贷:应收账款);2)纯核销型(如F.13自动清账),仅标记行项目状态不产生实际分录。关键规则:①仅未清项管理科目可清账;②互清必须配置主数据关联;③差额清账自动补差(折扣/汇差);④原始凭证永不修改,仅更新BSIK/BSAD等表状态。清账凭证均保留可追溯性,支持FBRA重置还

金牌架构师 544

GreenDao使用踩过的坑

本来想用litePal,看了郭大婶的说明,真的是好用! 后来发现网上说比较流行的还是 GREENDAO,且效率不错! 不用管那么多了,直接用吧. ---------------------------------------------------------------------------------- 看了一天的 GREENDAO,还是没有敢动手,那就动起来! ----...

anju2054的博客 403

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

greendao 默认数据库db 生成路径

1、   greendao 不设置自定义路径时,默认生成的路径在系统的data/包名   目录下。2、由于data目录在真机没有root 情况下,不能访问,可以用模拟器查看greendao 生成的db 文件...

无敌小鲁班的博客 3886

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: 高仿QQ时间选择器
下一篇: Redis单机版搭建
Code_legend
博客等级 码龄10年 33粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值