热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android数据库(SQLite)框架(3)——使用LitePal建立表关联

使用LitePal建立表关联使用LitePal来自动建立表关联不需要关心什么外键、中间表等实现的细节,只需要在对象中声明好它们相互之间的引用关系,LitePal就会自动在数据库表之间建

使用LitePal建立表关联

使用LitePal来自动建立表关联不需要关心什么外键、中间表等实现的细节,只需要在对象中声明好它们相互之间的引用关系,LitePal就会自动在数据库表之间建立好相应的关联关系了,下面我们就来尝试一下吧。

首先确定一下一共涉及到了哪些实体类,Person和Comment,这两个类我们在前两篇文章中就已经建好了,然后还需要有Introduction和Category这两个类,新建Introduction类,代码如下所示:

public class Introduction {  

private int id;

private String guide;

private String digest;

// 自动生成get、set方法
}

接着新建Category类,代码如下所示:

public class Category {  

private int id;

private String name;

// 自动生成get、set方法
}

现在四个类都已经建好了,但目前它们都还是各自独立的,互相之间没有任何联系,那么我们现在就开始用极为简单易懂的方式来给它们建立关联。

表与表之间的关联关系一共有三种类型,一对一、多对一、和多对多。

Person和Introduction是一对一的关系,那就可以在Person类中添加如下引用:

public class Person{  
...
private Introduction introduction;

// 自动生成get、set方法
}

就是这么简单,在Person类中可以得到一个对应的Introduction的实例,那么它们之间就是一对一关系了。

接着Comment和Person是多对一的关系,因此Person中应该包含多个Comment,而Comment中应该只有一个Person,所以就可以这样写:

public class Person{  
...
private Introduction introduction;

private List commentList;

// 自动生成get、set方法
}

先使用一个泛型为Comment的List集合来表示Person中包含多个Comment,然后修改Comment类的代码,如下所示:

public class Comment {  
...
private Person person;

// 自动生成get、set方法
}

在Comment类中声明了一个Person 的实例,这样就清楚地表示出了Person 中可以包含多个Comment,而Comment中只能有一个Person ,也就是多对一的关系了。

最后Person 和Category是多对多的关系,相信聪明的你一定已经知道该怎么写了。Person 中可以包含多个Category,所以仍然应该使用List集合来表示:

public class Person {  
...
private Introduction introduction;

private List commentList;

private List categoryList ;

// 自动生成get、set方法
}

而Category中也可以包含多个News,因此Category类也应该使用相同的写法,如下所示:

public class Category {  
...
private List personList;

// 自动生成get、set方法
}

这样就清楚地表达出它们之间是多对多的关联了。

关联关系都声明好了之后,我们只需要将所有的实体类都添加到映射列表当中,并将数据库版本号加1就可以了。修改litepal.xml的代码,如下所示:

  
<litepal>
<dbname value="demo" >dbname>

<version value="4" >version>

<list>
<mapping class="com.example.Person">mapping>
<mapping class="com.example.Comment">mapping>
<mapping class="com.example.Introduction">mapping>
<mapping class="com.example.Category">mapping>
list>
litepal>

导出数据库,用Sqlite expert工具打开userinf.db数据库后,查看userbean表效果如下:

这里写图片描述

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/39207945


推荐阅读
author-avatar
仰望天空说再见
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有