首页 > 其他分享 >android中使用greedDao

android中使用greedDao

时间:2023-09-14 11:47:57浏览次数:29  
标签:import greendao private 使用 org android com greedDao

 android中使用greedDao

一 工具说明

Greendao是一个在android中快速生成数据库操作的orm工具,最近在项目中使用到,具体操作记录如下,供以后使用快速集成。
该项目的源码在gitee的镜像地址为:【https://gitee.com/freewsf/greenDAO_1#add-greendao-to-your-project】

二 使用方式


1.在project的buildgrade中添加依赖仓库地址

buildscript {
    repositories {
        jcenter()
        google()
        mavenCentral()    //greendao plugin托管在中央仓库,要添加这一个
    }
    dependencies {
        classpath    'com.android.tools.build:gradle:3.5.3'
        classpath    'org.greenrobot:greendao-gradle-plugin:3.3.0' // 添加插件

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

 

2. 在app的buildgradle中添加插件的应用规则及依赖

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'   //应用插件

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"
    defaultConfig {
        applicationId "com.xxx.xxx"
        minSdkVersion 19
        targetSdkVersion 30
        versionCode 20210820
        versionName "2.0"
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'

        ndk {
            // 设置支持的SO库架构,'armeabi' , 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
            abiFilters  'armeabi','armeabi-v7a', 'arm64-v8a', 'x86'
        }

        sourceSets {
            main {
                jniLibs.srcDirs = ['libs']
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    //so 库目录加入
    sourceSets.main.jniLibs.srcDirs = ['libs']

    //定义greendao 自动生成dao代码的路径和规则
    greendao {
        //指定数据库schema版本号,迁移等操作会用到;
        schemaVersion 1
        //dao的包名,包名默认是entity所在的包daoPackage 'com.xxx.yyy.dbutil.dao'
        //生成数据库文件的目录;
        targetGenDir 'src/main/java'
    }

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'], exclude: [])
androidTestCompile('androidx.test.espresso:espresso-core:3.1.0', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.zxing:core:3.3.0'
testImplementation 'junit:junit:4.12'

//腾讯的键值对存储mmkv
implementation 'com.tencent:mmkv:1.0.22'

//添加lombok包支持
compile 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'


//greenDao
implementation 'org.greenrobot:greendao:3.3.0'
//gson
implementation 'com.google.code.gson:gson:2.8.5'

}
 

 

3. 添加一个实体类,比如

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;

import java.io.Serializable;
import java.util.Date;

import lombok.Builder;
import lombok.Data;
import org.greenrobot.greendao.annotation.Generated;

@Entity
@Data
@Builder
public class MachineOrder implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id(autoincrement = true)
    private Long id;
    private String machineOrderNo;
    private String uploadAlready;
    private String rawQrCodeInfo;
    private Date createTime;
    private Date uploadTime;
}

 

4. 准备完毕,点击  Build->make project.

这时候可以看到,在我们配置的  daoPackage 'com.xxx.yyy.dbutil.dao'  这个目录下面,已经自动生成了

标签:import,greendao,private,使用,org,android,com,greedDao
From: https://www.cnblogs.com/freewsf/p/17702108.html

相关文章

  • Android-2-manifest和build.gradle两个关键文件
    Androidmanifest.xml本质上就是用res中的文件配置项目的情况,像使用到的权限,app的名字,icon等等build.gradle.kts本质上和maven没什么区别,主要是做两个事情,一是添加插件,二是添加库(检查有无这个库,没有的话就从网上下载)Androidmanifest.xml<?xmlversion="1.0"encoding="utf-8"?>......
  • 数据库使用uuid的影响
    关于数据库主键性能差异比较对象:(自增主键、有序uuid、无序uuid)前置条件:根据自增主键、有序uuid、无序uuid相同环境相同条件新增3张测试表,分别向每张表插入5020000数据1、插入性能:插入耗时对比:自增:91257ms有序uuid:98779ms无序uuid:275468ms2、对比页的分裂数自增page_......
  • 态路小课堂丨光纤跳线的使用与维护小指南
    TARLUZ态路在光通信领域中,光纤跳线扮演着至关重要的角色。它作为一种用于连接光纤设备之间的光纤连接线,可以根据实际需求进行定制,以此来满足不同网络拓扑和连接方式的要求。在安装光纤跳线时,遇到的问题可能会对整个通信系统的性能和稳定性产生影响。本文态路通信将为您简单介绍光纤......
  • 运动控制卡使用教程(二)
    常用回零方式 1限位回原点(用于装有限位开关而未装有零点开关,精度要求不高的场景)a,调用回原点指令b,电机以较高速度运动到限位,c,碰到限位后反向运动,d,脱离限位后再以较低速度往限位方向动,e,再次碰到限位时停止运动,所听位置即为我们要找的原点。此种方式用的最多,很多模组......
  • fastadmin 的基本使用和一些复杂
    使用btn-addtabs新选项卡打开之后如何关闭或者返回`返回上一层`<aonclick="window.top.location.href='你返回的路径url,或者用js事件获取上层路径'"href="javascript:"><iclass="fafa-arrow-left"></i></a> 如何导出下面的数据添加按钮事件class="......
  • 使用python进行数据同步,根据游标的方式
    使用python进行数据同步,根据游标的方式一、介绍:数据同步分为好几种,比如根据最大id排序,其次才是根据游标进行排序。为什么不使用最大id进行数据同步?如下:因为如果数据表中的数据是按照降序排序的,那么每次根据最大id取1000条数据的方式也是一种可行的分页查询方式。这种方式的优......
  • 使用pyinstaller和electron将python打包为桌面端应用,无法在win7上执行
    在win10或win11上开发的软件,直接在win7上运行,可能导致下面的问题(python3.11electron23.*)(python3.7electron23.*) 原因在于:win10或win11上的开发环境(如python版本,electron版本)过高,win7不支持该环境。解决办法:降低python版本和electron版本,如:win7支持的python3.7和electron1......
  • js中使用0 “” null undefined {}需要注意 if判断时候都是false,比如判断接收后台数
    js中使用0“”nullundefined{}需要注意if判断时候都是false,比如判断接收后台数据if(data.info){}注意:在js中0为空(false),代表空的还有“”,null,undefined;如果做判断if(!上面的四种值);返回均为false?1234567console.log(!null);//trueconsole.log(!0);//trueconsole.lo......
  • 【腾讯云 Cloud Studio 实战训练营】Cloud Studio 使用分享 及ant-desing-pro 项目创
    【腾讯云CloudStudio实战训练营】CloudStudio使用分享及ant-desing-pro项目创建一、CloudStudio简介及登录1.简介首先附上官网地址,有兴趣的同学可以前去官网查看学习。CloudStudio_在线编程_在线IDE_WebIDE_CloudIDE_VSCode-腾讯云CloudStudio是基于浏览器......
  • Learn Git in 30 days——第 17 天:关于合并的基本观念与使用方式
    写的非常好的一个Git系列文章,强烈推荐原文链接:https://github.com/doggy8088/Learn-Git-in-30-days/tree/master/zh-cn 我曾在【第08天:关于分支的基本观念与使用方式】提过关于「分支」的基本观念与用法,现在则要来讲「合并」如何进行。由于Git是一种分布式版本控制系统(......