综合实战:一对多映x射(类型-子类型)
![](https://i-blog.csdnimg.cn/blog_migrate/128b5e745e2212b7620abecf7d450099.png)
一个课程分类下有多个子课程,现在要求如下:
- 利用简单Java类实现数据表的还原;
- 进行如下输出
|-可以输出一个子分类的信息,同时在输出的时候可以输出它所对应的分类信息;
|-可以输出一个分类的信息以及所包含的所有子分类信息。
程序的编写一定要按照正常步骤进行。
第一步:实现基本字段
class Item{
private int iid;
private String title;
private String note;
public Item(int iid,String title,String note){
this.iid=iid;
this.title=title;
this.note=note;
}
//setter、getter、无参略
public String getInfo(){
return "分类编号:"+this.iid+",名称:"+this.title+",简介:"+this.note;
}
}
class Subitem{
private int sid;
private String title;
private String note;
public Subitem(int sid,String title,String note){
this.sid=sid;
this.title=title;
this.note=note;
}
//setter、getter、无参略
public String getInfo(){
return "子分类编号:"+this.sid+",名称:"+this.title+",简介:"+this.note;
}
}
第二步:设置关联关系
class Item{
private int iid;
private String title;
private String note;
private Subitem [] subitems;
public Item(int iid,String title,String note){
this.iid=iid;
this.title=title;
this.note=note;
}
//setter、getter、无参略
public void setSubitems(Subitem [] subitems){
this.subitems=subitems;
}
public Subitem [] getSubitems(){
return this.subitems;
}
public String getInfo(){
return "分类编号:"+this.iid+",名称:"+this.title+",简介:"+this.note;
}
}
class Subitem{
private int sid;
private String title;
private String note;
private Item item;
public Subitem(int sid,String title,String note){
this.sid=sid;
this.title=title;
this.note=note;
}
//setter、getter、无参略
public void setItem(Item item){
this.item=item;
}
public Item getItem(){
return this.item;
}
public String getInfo(){
return "子分类编号:"+this.sid+",名称:"+this.title+",简介:"+this.note;
}
}
第三步:设置并取得数据
- 先根据结构设计,而后根据结构取出。
public class Hello {
public static void main(String args[]){
//第一步:根据结构设计关系
//1.准备出所有独立的对象,本处属于一对多
Item item=new Item(10,"编程语言","-");
Subitem subA=new Subitem(1001,"Java","-");
Subitem subB=new Subitem(1002,"Python","-");
Subitem subC=new Subitem(1003,"C","-");
//2.设置彼此的引用关系
subA.setItem(item);
subB.setItem(item);
subC.setItem(item);
item.setSubitems(new Subitem[]{subA,subB,subC});
//第二步:根据表结构取出数据
System.out.println(subA.getInfo());
System.out.println("\t|-"+subA.getItem().getInfo());
System.out.println("==============================================");
System.out.println(item.getInfo());
for(int x=0;x<item.getSubitems().length;x++){
System.out.println("\t|-"+item.getSubitems()[x].getInfo());
}
}
}