也就是说有个对象有个User类属性   (User类有8个属性)
有的页面需要User类id和name属性(一个链接),有的页面可能需要4个属性(name,等级,积分,头像等)该怎么解决这中问题的效率问题呢 ,在一个页面只需要2个属性的时候,没有必要把其他的属性也查询出来吧,用hibernate的延迟加载可以解决 可我是说直接用JDBC晕 到发帖了 分不够了 ,请多包涵吧

解决方案 »

  1.   

    我个人做法,是把数据取出来放在SESSION里,想要就拿来用。
      

  2.   

    HSQL="SELECT elements(p.username, p.password) FROM USER AS p";List ps = sess.CreateQuery(HSQL).list();
    if(ps.esEmpty())
        return ;
    for(Iterator it=ps.iterator(); it.hasNext();)
    {
        Object[] objs = (Object[]) it.next();
        System.out.println(objs[0]);
        System.out.println(objs[1]);
    }
      

  3.   

    封装对象User的8个属性没必要简化,这样对你编程难度的提高远远高于性能的提高,而且造成维护不便。严重建议User就是整个对象去传递,没什么问题。
    还有就是尽量不要把收集Users的集合(Collection)用Session传递,这样可能导致效率服务器压力大。
    完毕
      

  4.   

    我的做法是读取多得作个方法少的不用犊象USER ID和NAME 登陆了就一直放到会话里面用
      

  5.   

    可以做动态SQL查询,将SQL放在XML文件里,用面向OO的思想,程序启动时加载到MAP里,需要时直接拿来使用,不同页面针对不同的SQL.
      

  6.   

    用jdbc你可以直接写sql语句查询,比如select u.id, u.name from user u, othertable;