sql查询后如何把根据游标还原model类.

1 Dean Martin
2 Frank Sinatra
11 That's Amore 1
11 That's 1
比如我建两张表 a,b,a表中表示自己的id和名字,b表中表示id(外键),课程 以及成绩 我建一个model类
public class Item{
    int id;
    String name;
    Course[] Course;
}

public class Course{
    String name;
    int grade;
}

如果我使用select * from a Left Join b where a.id = b.id 查询后的应该为

1 Dean Martin 11 That's Amore 1
1 Dean Martin 11 That's 1
2 Frank Sinatra null null null

在返回cursor,list<Item>的情况下,我应该如何去填充list<Item>了,和单表查询时有什么区别.(不讨论ORM)

阅读 2.7k
1 个回答
Map<Integer,Item> hItems=new LinkedHashMap<Integer,Item>();
for(Cursor c:cursor){
  Course s=new Course();
  s.name =c.get("name2");
  s.grade=c.get("grade");

  int item_id=c.get("id"); //item.id
  Item item=hItems.get(item_id);
  if(item==null){
    item=new Item();
    item.id=item_id;
    item.name=c.get("name");
    
    item.course=new Course[]{s};
    
    hItems.put(item_id,item);
  }else{
     Course[] cs=new Course[item.course.length+1];
     System.arrayCopy(item.course,0,cs,0,cs.length-1);
     item.course=cs;
  }
}
return hItem.values();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题