如果用Hibernate读取数据,可以不返回一个List而是返回一个ResultSet之类的东西么?

解决方案 »

  1.   

    我是搞BS的,没有用过JTABLE
    那还是自己写吧,也就是多写点代码而已,而且灵活性也高呀!
      

  2.   

    建议你看看Hibernate Reference文档,很简单的,我记得是第八章,现在有中文的。
      

  3.   

    list是可以按照索引取值但是不转化为实体对象是不能取出别的字段值的。另外hibernate查询可以返回list,query,iterator但是没有resultset
      

  4.   

    不转化为实体对象你怎么取出List中别的字段值呀,还有Hibernate不能返回resultset可以是query,list,iterator
      

  5.   

    Hibernate Reference我有看,不过里面说到返回的,基本就是像 : zhigangsun(流星)说的那样。但是我希望他是可以返回一个表,包含字段和对应的值。那样,我单纯通过这个表就可以提供足够的信息去显示在窗口里,而不需要知道那是什么实体的,那实体包含些什么字段属性;我可以一次循环读取这个表的每个Columnn,而不需要明确指出我在读这个实体的什么属性。不知道大家有没有遇到过这样的问题?是怎么解决的?谢谢
      

  6.   

    hb本身就是对一个表进行包装,你现在想返回表就直接用jdbc吧;
      

  7.   

    把分给我吧,完全可以,你的需求和我设计的一个通用分页程序要求一样,不知道是那个表,也不知道有多少个属性,传一个HSQL进去把结果在界面上显示出来,只不过我的分页程序是要显示在网页上,看代码:
    /**
     * 用来增加分页数据浏览界面的一行数据
     * @param TableHeads 表头格式 
     * @param TableFormats 表中各数据的格式
     * @param QuerySQLString 取出数据的HSQL
     * @param PageSize 每页有多少条记录
     * @param CurrentPageIndex 要显示哪一页
     * @return  HTML内容
     */
    private String addTableRows(String[] TableHeads, String[] TableFormats,
    String QuerySQLString, int PageSize, int CurrentPageIndex) {
    StringBuffer sb = new StringBuffer();
    Session DbSession = null;
    Transaction Tran = null;
    Query query = null;
    Iterator results = null;
    int i = 0;
    int currentRowId = 0;
    try {
    DbSession = HibernateSessionFactory.currentSession();
    Tran = DbSession.beginTransaction();
    query = DbSession.createQuery(QuerySQLString);
    query.setFirstResult(PageSize * (CurrentPageIndex - 1));
    query.setMaxResults(PageSize);
    results = query.iterate(); //results = DbSession.iterate(QuerySQLString); currentRowId = 0;
    while (results.hasNext()) {
    Object[] Rows = (Object[]) results.next();
    //我的代码去掉了,看下面的也是一样的
    for(int z=0;z<Rows.length;z++){
    System.out.println(Rows[z]);
    }
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    Tran.rollback();
    } catch (Exception e) {
    }
    try {
    HibernateSessionFactory.closeSession();
    } catch (Exception e) {
    }
    }
    return sb.toString();
    }
      

  8.   

    如果楼主的程序不要求分页显示,只是一次性把所有记录显示出来,把我的那段程序中注释掉的
    //results = DbSession.iterate(QuerySQLString);
    用上就可以了,没有必要使用Query和List