greenDao配置及简单使用

GreenDAO的本质是为存储在关系数据库SQLite中的数据提供一个面向对象的接口。只需定义数据模型,Green DAO将创建Java数据对象(实体)和DAO(数据访问对象)这将为您节省大量无聊的代码,只需来回移动数据。除此之外,Green DAO还提供一些高级ORM(对象关系映射)特性类似于会话缓存、急切加载和活动实体。

ORM:为了解决面向对象与关系数据库存在的互不匹配的现象的技术,举个例子,就是为了解决原jdbc操作数据库的方式(结构复杂,访问渠道乱),orm提供了单独访问数据的渠道

总的来说,greendao封装了原生的数据库,使用非常简单.不耗用内存

配置:

在项目工程的biuld.gradel中配置需要用的插件

 dependencies {
       ......
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
    }

在module项目中配置
1.

implementation 'org.greenrobot:greendao:3.2.2'  //导入依赖
apply plugin: 'org.greenrobot.greendao'   //配置插件需要的依赖,注意放的位置(全局)

android {  
  .......



    defaultConfig {

3.自定义greendao的生成(marster,session,dao)路径,可以不自定义路径使用

com.greendaoDemo_20190218:项目包路径
gen为生成的包名(marster,session,dao生成在gen下)

greendao {
    schemaVersion 1
    daoPackage 'com.greendaoDemo_20190218.gen'
    targetGenDir 'src/main/java'  
}

创建bean类(数据库表,CRUD(增删改查)操作,都是通过这个bean类来更改数据)

@Entity:只有被@Entity的实体类才能被dao类操作
@Id:表示该字段是id,该字段类型必须为Long类型,(autoincrement = true)表示主键会自增
@Property:普通字段比如下方的str字段,他不需要声明,默认

需要表中有几个字段,就定义几个变量,id是必须定义的

@Entity
public class NewsTable {

    @Id
    public Long id;
    public String str;
   
}

上方的定义字段完成后,build一下(重新刷新)
在这里插入图片描述 刷新后我们会发现:

greendao将构造方法,getset方法生成

@Entity
public class NewsTable {

    @Id
    public Long id;
    public String str;
    @Generated(hash = 738712425)
    public NewsTable(Long id, String str) {
        this.id = id;
        this.str = str;
    }
    @Generated(hash = 1081144428)
    public NewsTable() {
    }
    public Long getId() {
        return this.id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getStr() {
        return this.str;
    }
    public void setStr(String str) {
        this.str = str;
    }
    
}

同时,在项目文件中会生成gen包(自定义生成路径)

在这里插入图片描述

在程序入口处,自定义application中初始化

getSession:提供了session对象,在自定义application中得到了session对象,方法的目的是:向外部提供该对象,想要进行crud(增删改查)操作,需要通过dao对象调用,但是dao对象通过session对象获得

其实marster,session,dao这三个就是上下级关系(封装关系)
marster-----session------dao

public class MyApplication extends Application {

    private static DaoSession daoSession;

    @Override
    public void onCreate() {
        super.onCreate();

        //1-1.创建数据库辅助方法,来创建数据库
        DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(this, "news", null);
        //1-2.通过数据库辅助对象来获取数据库可操作对象
        SQLiteDatabase writableDatabase = openHelper.getWritableDatabase();
        //1.创建Master实例,需要数据库可操作对象
        DaoMaster daoMaster = new DaoMaster(writableDatabase);
        //2.通过master对象创建session对象(session对象才可以调用dao)
        daoSession = daoMaster.newSession();


    }
    //创建公共静态方法,向外部提供session对象
    public static DaoSession getSession(){

        return daoSession;
    }
}

在清单文件中,使用自定义的application

<application
        android:name=".ui.app.MyApplication"
       . . . .
    </application>

使用:

添加:

//获取session对象,调用自定义application中的静态方法
                DaoSession session = MyApplication.getSession();
                //获取dao对象,开始增删改查
                NewsTableDao newsTableDao = session.getNewsTableDao();
                //创建表(bean)对象
                NewsTable newsTable = new NewsTable();
                //给表中字段赋值
                newsTable.setStr("张三");
                //添加到数据库
                newsTableDao.insert(newsTable);

查询:load根据id查询 loadAll全查

NewsTable load = newsTableDao.load((long) 1);
                if (null != load) {
                    Toast.makeText(this,load.getStr(),+0).show();
                } else {
                    Toast.makeText(this,"数据不存在",+0).show();
                }

剩下内容明天完善!!!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
配置GreenDao,你需要按照以下步骤进行操作: 1. 在module级别的build.gradle文件中,将以下代码添加到文件的顶部: ``` apply plugin: 'org.greenrobot.greendao' ``` 2. 在同一个build.gradle文件中,添加以下配置到android模块下的greendao块中: ``` greendao { schemaVersion 1 // 设置数据库版本号,升级时可修改 daoPackage 'com.example.greendaodemo.db' // 设置生成的DAO、DaoMaster和DaoSession的包路径,默认与表实体所在的包路径相同 targetGenDir 'src/main/java' // 设置生成的源文件的路径,默认在build目录下的build/generated/source/greendao目录中 } ``` 3. 添加GreenDao的依赖库,将以下代码添加到dependencies块中: ``` implementation 'org.greenrobot:greendao:3.2.2' ``` 这样,你就完成了GreenDao配置。如果需要生成GreenDao的代码,请确保你还添加了以下依赖库: ``` implementation 'org.greenrobot:greendao-generator:3.2.2' ``` 参考链接:<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [GreenDao简单配置](https://blog.csdn.net/qq_42061290/article/details/82586342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [GreenDao配置](https://download.csdn.net/download/a511341250/9593713)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [GreenDao配置文档](https://blog.csdn.net/chentaishan/article/details/105263937)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值