问题描述:
现有一个实体类Card(证件)
其中有属性:id、证件名称、姓名、卡号、备注,以及证件的照片,其中证件的照片可能有多张(1到4张),故需要用到一对多的关系。
思路:设计两张表,然后建立对应关系
证件类:Card
照片类:Photo
GreenDao语法:
@ToMany(referencedJoinProperty = "parentId")
一、定义Card类
//实体类:证件 Card
@Entity
public class Card {
//ID主键自增
@Id(autoincrement = true)
private Long id;
@NotNull
private String card_name;//证件名称
@NotNull
private String username;//证件人姓名
@NotNull
private String card_number;//卡号
private String remark;//备注
//cardId为Photo类中定义的一个属性
@ToMany(referencedJoinProperty = "cardId")
private List<Photo> photoList;
}
二、定义Photo类
//实体类Photo
@Entity
public class Photo {
//ID主键自增
@Id(autoincrement = true)
private Long id;
@NotNull
private String photo_path;//证件照片路径
@NotNull
private Long cardId;//设计此字段,然后在Card中引用它,以便于Card来识别它
}
三、添加数据
private void AddRecord() {
String cardname = et_card_name.getText().toString();
String username = et_user_name.getText().toString();
String cardnumber = et_card_number.getText().toString();
String remark = et_remark.getText().toString();
Card card = new Card(cardname, username, cardnumber, remark);
cardDao.insert(card);
//count_photo为图片的总数
//photoPathList为图片的绝对路径的List集合
for (int i = 0; i < count_photo; i++) {
Photo photo = new Photo();
photo.setCardId(card.getId());
photo.setPhoto_path(photoPathList.get(i));
photoDao.insert(photo);
}
Toasty.success(context,"保存完毕").show();
}
UI界面
- 存储完成后文件如下所示:
- 数据库:可以看到不同的
Photo
对应了相同的Card
1、Card表:
2、Photo表:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。