如:通过createSQLQuery(str);查询
String queryString = "select danHao1,danHao2 ,danHao3, danHao4 ,danHao5 FROM YwLsxsLin  where czRen= ? order by danHao desc"; Query queryObject = getSession().createSQLQuery(queryString);
queryObject.setParameter(0, UserID); List list = queryObject.list();得到的 结果集,想通过遍历,什么得到某一条记录的值?像用JDBC 取值rs.getString("xxx");

解决方案 »

  1.   


    Query q=session.createQuery("select danHao1,danHao2 ,danHao3, danHao4 ,danHao5 FROM YwLsxsLin  where czRen= ? order by danHao desc");
    List list = queryObject.list();
    Iterator pairs=q.list().iterator();
    while(pairs.hasNext()){
    Object[] pair=(Object[])pairs.next();
    String danHao1=(String)pair[0];
    String danHao2=(String)pair[1];
    ...
    }
    list返回的是一个Object[]数组对象,这样应该可以拿到你要的了。
      

  2.   

    嗯   查对象的部分属性的话  要用Object[] 数组来接   楼上正解。
      

  3.   

    1楼正解,就是一个元素为Object[]的Object数组,一个二维数组
      

  4.   


    我用SQL数据库查询得到danHao1 的值“Z090414PS009”
    为什么这里通过遍历得到的danHao1的值是“Z”;
    而不是完整的danHao1。
    ??
      

  5.   

    String queryString = "select new YwLsxsLin(danHao1,danHao2 ,danHao3, danHao4 ,danHao5) FROM YwLsxsLin  where czRen= ? order by danHao desc";        Query queryObject = getSession().createSQLQuery(queryString);
            queryObject.setParameter(0, UserID);        List list = queryObject.list();
    这样list里面返回的就是YwLsxsLin对象了,使用起来方便多了
    但需要在定义这个实体时定义一个相应的构造函数
      

  6.   

    该List返回的不是实体对象的List,而是一个包含数组的List,数组里只有你查询条件的属性,1楼正解
      

  7.   

    1楼正解是对,但是现在问题又来了。
    我用SQL数据库查询得到danHao1 的值“Z090414PS009” 
    为什么通过1楼方法  遍历得到的danHao1的值是“Z”; 
    而不是完整的danHao1值 
      

  8.   

    感觉你把Z090414PS009遍历了一遍?
      

  9.   


    String queryString = "select danHao1,danHao2 ,danHao3, danHao4 ,danHao5 FROM YwLsxsLin  where czRen= ? order by danHao desc";        Query queryObject = getSession().createSQLQuery(queryString);
            queryObject.setParameter(0, UserID);        List list = queryObject.list();        for(int i = 0;i<list.size();i++){ 
                 String danHao1 = list.get(i).getDanHan1();
                 String danHao2 = list.get(i).getDanHan2();
                 String danHao3 = list.get(i).getDanHan3();
                 String danHao4 = list.get(i).getDanHan4();
                 String danHao5 = list.get(i).getDanHan5(); 
                 System.out.println(danHao1);
                 System.out.println(danHao2);
                 System.out.println(danHao3);
                 System.out.println(danHao4);
                 System.out.println(danHao5);       }这个好像更好理解吧
      

  10.   

    各位我知道了  因为我数据库的这些字段的类型是char 
    hibername 返回的Character 类型只能存放一个字符 
    但问题仍在。。希望帮助解决 
    我数据库char 长度是12,而返回就一个字符,什么设置hibername 的Query
      

  11.   

    找到方法可以用addScalar(String arg,Type type)方法定义要返回的字段类型,如 s.createSQLQuery(shuiQingHQL).addScalar("STCD",Hibernate.STRING).addScalar("STNM");