GreenDao3.0学习(二)

GreenDao 3.3.0 基本使用与入门 (一) GreenDao 引入 GreenDao官网 GreenDaoAPI地址 Porject 目录下 build.gradle 下添加配置 dependencies { classpath 'com.android.tools.build:gradle:4.0.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.neenbedan 阅读详情

这一章主要介绍greendao的注解已经成功生成数据库和数据表

在前面一篇GreenDao3.0学习(一)中,我们对GreenDao3.0进行了简单的了解,并对GreenDao3.0在android studio中的配置过程进行了简单的说明。在上一篇中,我们自动生成 了三个java文件,特别是UserBeanDao.java,为什么会生成这个文件呢??
这篇文章我们主要对这点进行说明,

相关注解及说明

@Entity,没错,就是它,因为有了它,我们的实体类就会被greendao3.0识别,然后自动生成一个UserBeanDao.java。

注解名称说明
schema使得GreenDao知道当前实体属于哪个schema
active标记一个实体处于活动状态,活动实体有更新、删除和刷新方法
nameInDb在数据中使用的别名,默认使用的是实体的类名
indexes定义索引,可以跨越多个列
createInDb标记创建数据库表
@Entitygreendao的一个实体注解,因为有了它,我们的实体类才回被greendao识别并生成一个dao
@Id主键 Long型(默认是自增长的)也可以通过@Id(autoincrement = true)设置自增长
@Property置一个非默认关系映射所对应的列名,默认是的使用字段名 比如:@Property (nameInDb=”name”)
@NotNull@NotNull 标记后,表示这个属性在数据表中的这一列不能为空
@Transient添加这个标记之后,我们在实体类中的属性不会自动在数据表中生成这个属性表示的这一列
@Index使用@Index作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束
@Unique向数据库列添加了一个唯一的约束
@ToOne定义与另一个实体(一个实体对象)的关系,即一对一
@ToMany定义与多个实体对象的关系 即一对多
@JoinEntity多对多
referencedJoinProperty指定目标实体中与源实体相对应的外键。
joinProperty对于复杂一点的关系可以定义一组@JoinProperty注解。每个@JoinProperty注解都需要有源实体中的源属性和对应实体中的引用属性。

示例:

首先我们需要创建一个数据库 这里我们用一个GreenDaoManager.java类来管理数据库。
public class GreenDaoManager {
    private static GreenDaoManager mInstance;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    private DaoMaster.DevOpenHelper devOpenHelper;


    public GreenDaoManager() {
        //创建一个数据库

         devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getContext(), "greendao-db", null);
        DaoMaster mDaoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
        mDaoSession = mDaoMaster.newSession();
    }

    public static GreenDaoManager getInstance() {
        if (mInstance == null) {
            mInstance = new GreenDaoManager();
        }
        return mInstance;
    }

    public DaoMaster getMaster() {
        return mDaoMaster;
    }

    public DaoSession getSession() {
        return mDaoSession;
    }

    public DaoSession getNewSession() {
        mDaoSession = mDaoMaster.newSession();
        return mDaoSession;
    }

    /**
     * 关闭数据连接
     */
    public void close() {
        if (devOpenHelper != null) {
            devOpenHelper.close();
        }
    }
}


这里会有一个application ,如下:

public class MyApplication extends Application {
    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = getApplicationContext();
        GreenDaoManager.getInstance();
    }

    public static Context getContext() {
        return mContext;
    }
}

注意不要忘了在AndroidManifest.xml中处理:

然后我们运行程序,就可以看生成了一个数据库


现在我们导出来看看里面是什么。


我们可以看到生成了数据表,并且里面的列的名就是我们自动生成的Dao中的名称。
咦~,等等,好像有什么不对,
我们看看我们的UserBean1.java文件,


age怎么没有生成呢 ?这就是@Transient的作用了,
好了,现在我们的数据库以及数据表已经生成,至于其他注解,我们可以参照官网一个一个去试试。。。
特别提醒:自增长的Id一定是Long类型的
项目相关地址:https://github.com/mutounaodai/Greendao

GreenDao 3.3.0 多表关联使用(二) GreenDao 3.3.0 基本使用与入门(一) 注解关系说明 GreenDao 进行表关联的处理 一对一, 一对多和 多对多的表管理处理, 其联关系是通过主外键(对象之间关联的id,外键是对应表的主键id)来构建的, @ToOne(joinProperty =“teacherId” ) 一对一 @ToMany(referencedJoinProperty =“courseId”) 一对多 @ToMany //多对多 需要一个中间表去连接 @JoinEntity(entity = GradeJ 阅读详情

相关推荐

greenDao3.0数据库基本使用及升级

greenDao3.0数据库基本使用及数据库升级方法

Android系列之GreenDao连表查询(二)

背景 上一篇文章 Android系列之GreenDao基本使用(增、删、改、查)给大家介绍的GreenDao最基本的用法。看完上篇文章之后,大家对于基本的增删改查应该都已经学会了。那么这篇文章就给大家介绍下在GreenDao中如何进行连表查询。 GreenDao内置的注解@ToMany @ToOne 连表查询无非是这三种情况: 1.一对一 @ToOne 2. 一对多 @ToMany 3. 多对多 ...

我是你妹她哥的博客 2816

别再只盯着充电功率了!从PWM信号到PLC通信,一文读懂CCS2充电桩如何跟你家电动车“聊天”

本文深入解析了CCS2充电桩与电动汽车之间的12次关键通信交互,从硬件握手到PLC加密通信,再到充电参数动态协商与安全校验。通过详细的技术细节和实时交互逻辑,揭示了现代快充技术如何实现高效安全的能量传输,帮助用户理解充电过程中的核心技术要点与故障排查方法。

weixin_30527323的博客 141

GreenDao的简单使用

GreenDao相比较原生的sqlite确实方便了很多,下面我们来一起探讨GreenDao的简单的使用方法。 我们先来了解一下注解: 基础属性注解 @Id :主键 Long型,可以通过@Id(autoincrement = true)设置自增长@Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名 举例:@Property (nameInDb="name")@

Cattle_Wei的博客 512

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6862

Android数据库框架greenDao学习笔记(二)---注解

引言  上篇博客中介绍了greenDao的集成方式,这篇博客,我们介绍如何使用greenDao创建我们需要的数据表。补一张图(来自官网),来理解greenDao,大家意会吧。   注解  先上一张图,来对greenDao的注解有一个直观的认识:   Schema  通过在Gradle文件中进行配置,就无需再额外配置,它的配置选项主要有以下几个:    schemaVersion:数据库最新的版

不悔的青春 1759

硬件测试实战笔记:SI/PI 到底测什么,怎么测?一文讲清

点选错了,数据越精确越误导。

qq_52293640的博客 258

Android ORM框架 GreenDao3.0的使用

前言之前用过许多的Orm框架,例如:ORMLite、greendao、ormndroid、androrm、ActiveAndroid,SugarORM等等,不过都没有一一研究,感觉GreenDao的文档和支持率比较高,所以就一直采用了GreenDao作为项目的Orm框架,关于这些框架的大致分析,可以看我Csdn的文章Android Orm框架分析 ,回到正题,我之前用的还是GreenDao的2.x版

戴定康的博客 1201

qt open3dBPA重建

open3d BPA重建

阁楼 516

一文搞定离线环境下的RAG引擎部署

在人工智能浪潮下,技术已成为构建智能问答、文档分析和代码助手等应用的核心。然而,在许多企业场景中,出于数据安全和性能的考虑,服务器往往部署在中,并要求极致的推理效率。这给依赖外部资源的应用部署带来了巨大挑战。如何在这种严苛的环境下,完整、可靠地部署一套包含向量数据库、**高性能推理服务(vLLM)**和Python后台的复杂RAG系统呢?本文将为你提供一个,手把手教你如何使用 Docker 技术,将一套基于 Weaviate 和的 Python RAG 应用完整打包,并在离线环境中一键部署。

木鱼时刻的专栏 1242

Android ORM 框架 GreenDao 使用详解,android简历项目经验

写完上面实体类代码之后,接下来实体类代码的生成就交给 Android Studio 编译器就可以了,首先我们点击菜单栏中 Build 然后点击 Make Project,等待编译器编译完就可以了,编译完后实体类代码如下所示:(这里实现了 Parcelable 接口是为了在 Activity 之间传递实体类,实现接口的方法一直 Alt + Enter 就可以了) @Entity public class GoodsModel implements Parcelable { @Id(autoincrement

m0_64382743的博客 882

【图像处理】德里奇( Deriche)边缘检测器

Deriche边缘检测,同canny算法齐名,因此,知道canny原理,也有必要知道德里奇的检测原理。本篇专门针对德里奇算法展开讨论。

gongdiwudu的专栏 8683

智能体AI认知能力缺口:五类故障定位与工程干预指南

在从生成式AI向智能体AI演进的过程中,模型不再只是返回一段文本,而是需要自主完成感知、记忆、推理、执行与自我监测的完整链路。当任务拉长、工具调用变多时,单点错误会沿链路传播,最终导致系统失控。这种“幻觉”“不稳定”背后,往往不是模型不够强,而是认知能力存在缺口。将故障按认知链条拆分为感知输入、知识边界、推理规划、执行调用与自我监测五类,可以帮助团队定位根因,并选择合适的干预手段。结合输入校验、RAG知识库、规划器、工具schema校验以及外部评估器,能够在不依赖模型无限扩参的情况下提升系统可靠性与可维护性

weixin_34320159的博客 399

【Python基础】FastAPI 从入门到项目实战操作详解

【Python基础】FastAPI从入门到使用实战操作详解

congge_study的博客 447

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

GreenDao 3.0 学习笔记(二)

查询:普通查询:QueryBuilder qb = user.queryBuilder(); //id在20到25之间的数据 qb.where(qb.and(UserInfoDao.Properties.Id.gt(20), UserInfoDao.Properties.Id.lt(25))); List users = qb.list();可用的方法

Zhang_YingJie的博客 314

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

GreenDAO 3.0 初次使用

之前项目中用到了GreenDAO,使用的是2.X的版本,总结下来就是非常难用。2.X中是新建一个项目,然后再项目中配置各个实体的字段等相关属性,然后生成实体以及DAO操作相关的一些类。但是,当你修改了实体中的一些属性,并且这些属性又要在数据库中保存的时候,你会发现每次重新运行generator之前的改变都得重新再来一次。       GreenDAO中比较大的变化就是使用了注解和Gradle,而且

Hello MrLi 1万+

pscad IEEE标准系统搭建说明

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

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

GreenDao3.0简单使用

greenDAO 优势 1、一个精简的库 2、性能最大化 3、内存开销最小化 4、易于使用的 APIs 5、对 Android 进行高度优化 Greendao3.0 最主要的三大改变: 换包名 实体注解 加密支持的优化 GreenDao 3.0使用: GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码。 GreenDao3

初来乍到 2061

Android 简单使用 GreenDao3.0

GreenDao的使用 1、在project的build.grade文件中添加如下依赖 classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0' 2、在app的build.grade文件中添加如下依赖 compile 'org.greenrobot:greendao:3.0.1' compile 'or...

qinxuexiang_blog的博客 4015

GreenDao3.0的使用

前言之前用的还是GreenDao的2.x版本,总体感觉来时是比较难用的,而且唯一不能接受的是新建一个Java项目,然后再项目中配置各个实体的字段等相关属性,然后生成实体以及DAO操作相关的一些类。但是,当你修改了实体中的一些属性,并且这些属性又要在数据库中保存的时候,你会发现每次重新运行generator之前的改变都得重新再来一次。不过作者新发布的GreenDao3的话用了大量的注解,省去了新建项目

Chaosminds的博客 1064

greenDao3.0 的基本使用

greenDao3.0 的基本使用前言:greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。greenDao3.0 相对于2.0版本使用起来更简单易懂,大大降低学习成本。 如果要详细了解的小伙伴可以访问greenDao的官方地址:greenDao优势: 访问速度快. 易于使用的api. 内存消耗较少. 支持数据库加密. 库精简,从而避免65535的大小限制. 集成

u010041075的专栏 1735

ORM框架之GreenDao3.0使用详解(二)

上一篇讲解了GreenDao3.0如何集成环境与添加各类注解,这一篇我们来看看如何使用GreenDao实现数据库增删改查的功能,还是上一篇公司Company与雇员Employee的例子。

LeiHolmes的博客 758

GreenDao3.0的项目搭建及简单使用

GreenDao2.+时,使用GreendDao,需要另外创建一个Java项目,来生成DaoMaster,DaoSession,Dao,3.0之后依然可以另建项目来创建,不过,这些可以在一个Android项目之中完成了,而且3.0之后,采用注解来对实体进行定义,创建表,定义表的字段属性,加快创建表的速度。官方文档参考 具体实现:以下例子是在一个Android项目中创建表,并开发相关功能,不另外创

王公子 2698

Android Studio 简单使用 GreenDao3.0

Android Studio 简单使用 GreenDao3.0 据说现在很流行GreenDao框架,所以也抽空了解一下,可恨啊,刚看到的时候在百度上查询的就是GreenDao,然后很不幸的去走老版本的套路,麻麻烦烦的创建java工程,生成那四个文件,还为此查找了网上留存的不少的方法,今天的时候,再次搜索GreenDao的时候 ,发现有一个信息后面带了3.0这个版本号,查阅之后,只能暗自拍一拍大腿……

半把秋风的博客 7178

GreenDao3的初步使用

1.GreenDao简介。 现在程序中对于数据库的操作是必不可少的,而且占据整个程序的重要一个部分。而程序员掌握数据库的操作是很重要的一项技能,但是数据库的代码往往重复性很高,一遍遍的重复着相同的操作步骤并不是很明智的选择。这时候一个ORM框架就显得极为重要了,一个好的ORM框架可以为程序的开发节省大量的时间,并且好的框架还能够发挥出更大的性能和效率,所以如果并没有过硬的技术,去选择一个良好的O

繁城落叶 2669

GreenDao 3

分享一份NDK基础开发资料分享内容包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!板技术停滞不前!**

2401_84123557的博客 1049
上一篇: GreenDao3.0学习(一)
下一篇: GreenDao3.0学习(三)
cbing111
博客等级 码龄12年 5粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值