求教一个功能实现思路
我想在一个页面上  动态的读取10张最新上传到服务器上的图片,如何实现?
重要前提:
      1  不要遍历数据库;
      2  我只要最新的10个记录,只要10个我用的框架和工具hibernate spring struts2 extjs lucene
   请各位DX给帮忙解答

解决方案 »

  1.   

    上传的图片在数据库中增加一个“上传时间”列,然后用一条SQL语句就可以搞定了:
    SELECT TOP 10 picture_id FROM data_table ORDER BY upload_time DESC
      

  2.   


    如果是HQL语句呢  怎么打?  一样吗
      

  3.   

    HQL对 排序的操作是一样的 
    如果排序都不支持 那就不叫框架了 
      

  4.   

    当然 HQL中应该不支持 top 10这种分页  你可以使用sql语句用hibernate查 session.executeSqlQuery(“”)印象中有这个方法  好长时间没用过hibernate了
      

  5.   

    用Spring了难道就没用Spring的Template模板吗?
      

  6.   

    我希望用spring的HibernateDaoSupport中的HibernateTemplate来实现要怎么做呢?
      

  7.   


    能具体的说说吗?怎么做?
    我只知道用template模板用HQL语句查找
    我发现里面有个getMaxsize() 和  setMaxsize()  可是我不会用
      

  8.   


    Query query = session.createSQLQuery(sql).addEntity("",Class.class); 
    List list=query.list();里面上去sql可以直接写sql语句不用hql 用原生sql查询 
      

  9.   

    这应该不属于spring的hibernatedao事务的范畴吧?
      

  10.   

    这应该不属于spring的hibernatedao事务的范畴吧?
      

  11.   

    Query q=session.createQuery("from table");
    q.setFirstResult(start);
    q.setMaxResults(end);
    start从零开始
      

  12.   

    [Quote=引用 14 楼 xiawencdsn 的回复:]
    Query q=session.createQuery("from table");
     q.setFirstResult(start);
     q.setMaxResults(end);
     start从零开始
    [f/Quote]
    我说了我用的是SPRING的DAO事务
    我尝试了
    public List<Pic> getNewest(){
    return (List<Pic>)getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session)
    throws HibernateException, SQLException {
    Query query = session.createSQLQuery("SELECT TOP 2 * FROM t_pic ORDER BY time DESC").addEntity(Pic.class); 
    List list=query.list();
    return list;
    }

    }); }
    }但是报错
      

  13.   


    Query q=session.createQuery("from table order by data");
      

  14.   

    终于被我解决了  如果你是使用spring管理dao事务的  Hql语句局限时,可以通过sql语句来实现,用的是hibernateTemplate中的callback函数,在写sql语句时应该注意数据库语言的支持,例如Oracle中的rownum<=n 来控制返回查询记录的数目  而在mysql 则应该用limit n来实现,看看我是怎么解决的吧:public List<Land> getNewest(String num){
    return (List<Pic>)getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session)
    throws HibernateException, SQLException {
    Query query = session.createSQLQuery("select * from (select * from t_pic order by time desc) t_pic limit 10").addEntity(Pic.class); 
    List list=query.list();
    return list;
    }

    }); }
    }
    但是我有个严重的疑问,这样的sql语句是否遍历了数据库,如果数据量太大会不会开销很大?