Android_GreenDao

Android GreenDao 使用全面讲解 若使用insertOrReplace()方法添加数据,当前数据库中不会有重复的数据,但是重复的这条数据的id会被修改!该QueryBuilder的类可以让你建立你的实体,而不SQL自定义查询,并有助于在编译时已检测错误。@Property (nameInDb=“name”) //设置了,数据库中的表格属性名为"name",如果不设置,数据库中表格属性名为"NAME"从GreenDao 3 使用注解来定义模型和实体,前面也讲过,通过注解的使用可以快速构建数据库表,包括设置主键,自增,值是否唯一等等等…… 阅读详情

一:greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案

    GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码


二:依赖

Project里加入,不是项目里的而是工程里的gradle

buildscript {
    repositories {
        jcenter()
        mavenCentral()  ///////
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' ////////
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

项目gradle

最上面添加:apply plugin: 'org.greenrobot.greendao'
dependencies下添加:compile 'org.greenrobot:greendao:3.2.2'
greendao{
    schemaVersion 1
    daoPackage 'com.greendao.gen'//自己的包名
    targetGenDir 'src/main/java'
}

添加完之后,Build  MakeProject构建一下,生成相应代码


三:使用

1:创建Person类,添加上注解之后Build  Make Module 'GreenDao' 生成相应代码

@Entity
public class Person {
    @Id
    private Long id;
    private String name;
    private int age;
    @Generated(hash = 1145075130)
    public Person(Long id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    @Generated(hash = 1024547259)
    public Person() {
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return this.age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
2:创建类做数据库初始化工作
public class DbHelper {
    private static volatile DbHelper instance;
    private final DaoSession daoSession;

    private DbHelper(Context context) {
        //初始化数据库的配置
        DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context,"user",null);
        //获取数据库操作对象
        SQLiteDatabase db = helper.getWritableDatabase();
        //获取DaoMaster对象
        DaoMaster daoMaster = new DaoMaster(db);
        //获取DaoSession对象
        daoSession = daoMaster.newSession();
    }

    public static DbHelper getInstance(Context context) {
        if (instance == null) {
            synchronized (DbHelper.class) {
                if (null == instance) {
                    instance = new DbHelper(context);
                }
            }
        }
        return  instance;
    }

    public PersonDao getPersonDao() {
        return daoSession.getPersonDao();
    }
}

3:使用增删改查
public class MainActivity extends AppCompatActivity {

    @BindView(R.id.btn_add)
    Button btnAdd;
    @BindView(R.id.btn_delete)
    Button btnDelete;
    @BindView(R.id.btn_update)
    Button btnUpdate;
    @BindView(R.id.btn_selete)
    Button btnSelete;
    private PersonDao dao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        //拿到要操作的对象
        dao = DbHelper.getInstance(this).getPersonDao();
    }

    @OnClick({R.id.btn_add, R.id.btn_delete, R.id.btn_update, R.id.btn_selete})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.btn_add:
                Person person = new Person();
                person.setName("张三");
                person.setAge(23);
                dao.insert(person);
                break;
            case R.id.btn_delete:
                Person person1 = new Person();
                person1.setId(5L);
                dao.delete(person1);
                break;
            case R.id.btn_update:
                Person person2 = new Person(6L, "lisi", 24);
                dao.update(person2);
                break;
            case R.id.btn_selete:
                //List<Person> person3 = dao.queryRaw("where _id=? and name=?", "1","张三");//条件查询
                List<Person> person3 = dao.loadAll();//查询全部
                for(int i=0;i<person3.size();i++){
                    Log.i("TAG",person3.get(i).toString());
                }
                break;
        }
    }
}




在android studio中使用greenDao 最近项目重构,我负责android客户端数据库操作的封装,调研时发现了一款超级好用的ORM数据库框架——greenDao!看了greenDao官网的说明,发现这个框架比之前用的ORMLite快很多,采用自动生成代码的方式也让人眼前一亮,于是决定试一试。好了,话不多说,上代码!一、配置工程1、在../app/src/main 目录下新建Directory命名为java-gen-db,用于存放green 阅读详情

相关推荐

安卓数据库 GreenDao的使用教程

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

zz1017161726的专栏 823

Android ORM 框架 GreenDao 使用详解,快手安卓面试题

greenDAO 的引入非常简单,我们只要按照 github 文档 上去做就可以了,具体如下所示: 5.1.2、创建实体类 @Entity public class GoodsModel implements Parcelable { @Id(autoincrement = true) private Long id; @Index(unique = true) private Integer goodsId; private String name; private String icon; priva

m0_64603776的博客 227

Android框架之路-GreenDao的使用

greendao {schemaVersion 1 //版本daoPackage ’生成文件包名’ // 一般为app包名+生成文件的文件夹名targetGenDir ’src/main/java’ //生成文件路径greendao {schemaVersion 1 //版本daoPackage ‘生成文件包名’ // 一般为app包名+生成文件的文件夹名targetGenDir ‘src/main/java’ //生成文件路径4.创建实体类,生成dao文件@Entity@Id。

2401_84148942的博客 1163

Android:安卓学习笔记之GreenDao 的简单理解和使用

GreenDao 的简单理解和使用GreenDao1、前言2、greenDAO 概述3、ORM 框架概述4、greenDAO 使用4.1、准备工作4.1.1、引入 greenDAO4.1.2、创建实体类4.1.3、自动生成实体类代码4.1.4、初始化 greenDAO4.2、具体使用(增删改查)4.2.1、新增数据4.2.2、查询数据4.2.3、更新数据4.2.4、删除数据4.2.5、GreenDaoManager 完整代码5、总结2、参考 GreenDao 1、前言 关于 Android 中常用的数据存

JMW1407的博客 1万+

在Android Studio中引入GreenDao

背景GreenDao 是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。(greenDAO is a light & fast ORM solution that maps objects to SQLite databases), 而关于 ORM (Object Relation Mapping - 对象关系映射)的概念,可参见 Wikipedia。GreenDao的优点

刺青的博客 911

实战案例:用多智能体系统模拟房地产市场的架构设计

房地产市场是典型的复杂自适应系统:买方纠结“要不要上车”、卖方盘算“挂多少钱能快速成交”、中介忙着“撮合两边赚佣金”、政府琢磨“怎么调政策稳房价”——每一个参与者的微小决策,最终都会汇聚成“房价暴涨”“成交冰点”这样的宏观现象。传统的计量经济学模型(比如线性回归)假设“所有人都是理性人”,但现实中没人能算清所有变量——你可能因为“同事买了学区房”就跟风,也可能因为“怕失业”而放弃买房。这时候,多智能体系统(MAS)

移动开发前沿的博客 1122

安卓GreenDao基本使用

配置参考github官方https://github.com/greenrobot/greenDAO 不过发现配置似乎需要翻墙 首先在build.gradle repositories { google() jcenter() mavenCentral() // add repository } classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' 在build.gradle(

小Tian的博客 652

深入了解 CPU 的型号、代际架构与微架构!

深入了解 CPU 的型号、代际架构与微架构!

欢迎朋友,我是一名十多年开发经验的新手,希望多多指教。 3195

Android ORM 框架 GreenDao 使用详解

(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总)面试成功其实是必然的,因为我做足了充分的准备工作,包括刷题啊,看一些Android核心的知识点,看一些面试的博客吸取大家面试的一些经验,

2401_87029387的博客 2368

使用Anaconda和conda快速搭建YOLO开发环境

本文详细介绍了如何使用Anaconda和conda为YOLO目标检测项目快速搭建独立、纯净的开发环境。通过创建虚拟环境,有效解决了Python包版本冲突和CUDA兼容性问题,并指导安装GPU版PyTorch等核心依赖,最后通过验证脚本确保环境配置成功,为YOLO开发提供了稳定可靠的基础。

weixin_28829629的博客 162

Unity3D用c#脚本调用前端javascript函数:H5获取unity - webgl 加载并初始化完成的消息

unity3d发布的Webgl 可以作为静态文件加载到H5页面中,并通过javascript 调用unity内置的C#脚本函数,详见Webgl调用unity api。而往往我们需要知道Webgl ready的消息,本文将给出unity 内部调用javascript函数的方案加以解决。

Bravo 2476

Android greenDao

greenDAO是一个开源的Android ORM(对象-关系映射),它让SQLite数据库的开发再次变得有趣。它使开发人员免于处理低级数据库要求,同时节省了开发时间。SQLite是一个很棒的嵌入式关系数据库。尽管如此,编写SQL和解析查询结果仍然是非常繁琐且耗时的任务。通过将Java对象映射到数据库表(称为ORM,“对象/关系映射”),greenDAO使您摆脱了这些麻烦。这样,您可以使用简单的面向对象的API来存储,更新,删除和查询Java对象。 最佳性能 (可能是 Android 中最快的 ORM) ,

xiaowang_lj的博客 1662

汽车级智能栅极驱动器深度解析 | 连载01:DRV871x-Q1系列产品架构与核心特性

集成度:单芯片集成多通道驱动器、电源管理、电流检测智能化:自适应控制算法,减少外部元件可靠性:多重保护机制,满足汽车级要求灵活性:SPI和硬件两种接口,适应不同应用需求。

VehSwHwDeveloper的博客 1151

Android GreenDao基本使用

greenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM解决方案。 关于greenDAO的概念可以看官网greenDAOgreenDAO 优势1、一个精简的库 2、性能最大化 3、内存开销最小化 4、易于使用的 APIs 5、对 Android 进行高度优化GreenDao 3.0配置GreenDao 3.0采用注解的方式来定义实体类,通过gradle插件生成相应的代码。

余生|的博客 1万+

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1093

手把手教你用闲置安卓手机+蓝鲸支付,零成本搞定个人项目自动收款(附私有化部署教程)

本文详细介绍了如何利用闲置安卓手机和蓝鲸支付系统,零成本搭建个人项目自动收款解决方案。通过私有化部署教程,读者可以学习到从手机选择、系统配置到支付渠道对接的全流程,实现安全、高效的收款系统,特别适合个人开发者和小型项目使用。

weixin_29597551的博客 334

android greendao详解,Android GreenDao的基本使用

前言Android 本地数据库有很多,Sqlite、Dbutils、LitePa、GreenDao等,其他的几个数据库框架都用过了,GreenDao还未在项目中用过,所以在这里记录下GreenDao的基本使用。?一、添加GreenDao支持?1.1 在项目根目录下的build.gradle下的代码添加下列代码:1.2 在module下build.gradle(这里是app下的build.gradl...

weixin_33139275的博客 2666

3步搞定专利数据爬取:用Selenium绕过国家知识产权局反爬(附完整代码)

本文详细介绍了3种高效获取专利数据的技术方案,重点解析了使用Selenium绕过国家知识产权局反爬的实战方法,并提供了完整代码示例。文章还探讨了Requests+lxml轻量级方案和混合技术策略,帮助开发者根据需求选择最佳数据爬取方案,特别适合需要专利统计数据的开发者参考。

weixin_29029995的博客 1109

Android GreenDao的基本使用

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。这里我为大家准备了一些我在面试后整理的面试专题资料,除了面试题,还总结出了互联网公司Android程序员面试涉及到的绝大部分面试题及答案,并整理做成了文档,以及系统的进阶学习视频资料分享给大家,希望能帮助到你面试前的复习,且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

2401_84558590的博客 847

pscad IEEE标准系统搭建说明

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

安卓持久框架Room VS GreenDao

一 、Room的基本使用 1、导包: 1 2 implementation"androidx.room:room-runtime:2.2.3" annotationProcessor'android.arch.persistence.room:compiler:1.1.1' 2、添加数据库 1 2 3 4 5 6 @Database(entities = {User.cl..

chang1611的博客 2941

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android ORM框架GreenDao用法

Android ORM框架GreenDao用法0 简介android 上的ORM框架主要有两个:ormlite 和 GreenDAO,本篇主要介绍GreenDao的用法,原因是GreenDAO的速度快,关于ormlite和GreenDao的性能对比,请看这篇文章:[http://www.open-open.com/lib/view/open1438065400878.html][1] GreenD

梧桐那时雨 1541

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

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

Android GreenDao浅析

GreenDAO简介 GreenDao是一个为了帮助Android开发者操作SqLite数据库的开源项目。SQLite数据库是一个轻量级的关系型数据库。但是,对SQLite数据库操作需要大量的额外工作,例如,写SQL语句和解析查询出来的结果是一个很繁琐的任务。GreenDao将可以为你解决这一切工作:它可以把Java对象转换成数据库表(也就是所谓大家熟悉的ORM,做过Java的同学应该知道Hib

Picasso_L的专栏 2921

Android中GreenDao的使用

在学习过程中,难免忘记,写下博客跟大家分享的同时,同时也增强自己的记忆,以便自己以后进行查看.

陈德山 864
上一篇: Android_注解与泛型
下一篇: Android_数据的三级缓存
绅V科技
博客等级 码龄9年 61粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值