假如有两个类:A类和B类
B类的一个属性引用的是A类的对象。现在要从数据库读取B类的所有数据(数据库表映射实体类)
只有先把所有的A类对象读取出来放在集合中,然后再读取B类的时候,把关联的A类对象从集合中找出来引用。提问:
如果当数据量过大的时候,这样做肯定会影响效率,能否在从数据库先读取B类时读取指定的A类对象?
connection单独占用,两个ResultSet读取时,后面的会冲掉前面的ResultSet.求高人解答!(视图除外)

解决方案 »

  1.   

    可以先只读B的数据(不包括A),等要用A的时候在去读,相当于延迟加载。
      

  2.   

    两个rs被冲掉是因为你用了同一个statement,你可以用一个connection同时打开多个statement,
    但一个statement默认只能同时打开一个rs,所以两个rs应该用两个statement就不会冲掉了。
      

  3.   

    你这不正好用hibernate么?可以看看hibernate的一对多关系的内容
      

  4.   

    关键是在b获取a的时机上做文章
    一般。a的列表分页的时候,可以先把a查询出来,然后遍历a的集合如果a的列表有不分页的情况,那么这样做就是不可取的了,这时将发出n+1条sql
    这时可以将b 和a 关联起来查询一次,然后构造你想要的结果