原创

安卓本地轻量级数据库操作框架 greenDao3.2.2 详细教程附带Demo③—— 一对多关系操作。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://xuhong.blog.csdn.net/article/details/78004479

欢迎来到安卓本地轻量级数据库操作框架 greenDao3.2.2 学习之旅。


本套框架博客系列博客目录:



  • 通过下面这张图,大家很清楚地明白本篇博文要讲的是什么主题吧?没错,就是对象一对多的关系。下面这张图表示的意思是:家乡是北京的人有小明和小枫,而家乡是广州的人有小芳和小花。

    • 下面延伸的意义为 一个家乡对应多个人,但是一个人只能对应一个家乡。
  • 这里写图片描述


  • 效果图

这里写图片描述


一、键键关联。


第一步:因为我们的“人”只能对应一个“家乡”,所以,在我们的 user表里面加上:

    //关联家乡
    @ToOne(joinProperty = "homeDownId")
    private HomeTown homeTown;

    //关联家乡的主键,关联家乡的“ToMany”
    private Long homeDownId;

第二步:在我们的“家乡”表加上以下代码:

    //关联人的外键,在创建一个新的“家乡”对象时候,可以传这个id进来表示该 id的对象将存在这个家乡里面
    private Long userId;

    //对接具体人的外键
    @ToMany(referencedJoinProperty = "homeDownId")
    private List<User> userList;

第三步:点击make project ,我们发现在我们的user .java文件中新增的代码中出现的构造方法2个,一个是无参的构造方法。这个有参数的构造方法,旨在大家可以指定一个人的“家乡”!当然啦。如果你不想先设置家乡,就先用无参的构造方法吧,再一步一步设置参数。


这里写图片描述


二、设置家乡。


  • 设置某个人为北京
    //先拿到user表下所有的用户,返回一个list集合
    List<User> userList=DBManager.getmInstance().getSession().getUserDao().loadAll();
    //新建一个“北京”家乡
     HomeTown beijing = new HomeTown(null, "北京",userList.get(0).getHomeDownId());
    //先将这个家乡插入数据库
    DBManager.getmInstance().getSession().getHomeTownDao().insert(beijing);
     //将某个用户设置家乡为北京
      userList.get(1).setHomeTown(beijing);
      //更新一下           DBManager.getmInstance().getSession().getUserDao().insertOrReplace(userList.get(1));

  • 获取家乡是北京的所有人。
   //先拿到数据库下的家乡列表
  List<HomeTown> homeTownList = DBManager.getmInstance().getSession().getHomeTownDao().loadAll();
        for (int i = 0; i < homeTownList.size(); i++) {
            if (homeTownList.get(i).getName().equals("北京")) {
                Toast.makeText(MainActivity.this, "家乡是北京的所有用户,名字:" + homeTownList.get(i).getUserList().get(0).getName()
                                + ",年龄:" + homeTownList.get(i).getUserList().get(0).getAge()
                        , Toast.LENGTH_SHORT).show();
            }
        }

demo下载:https://gitee.com/HalfHeart/GreenDaoDemo2

文章最后发布于: 2017-09-16 16:27:18
展开阅读全文
0 个人打赏

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 成长之路 设计师: Amelia_0503

分享到微信朋友圈

×

扫一扫,手机浏览