用sql语句查出的字段顺序 和 查完放入list里的顺序不一样 。。

用sql语句查出的字段顺序 和 查完放入list里的顺序不一样 。。3

我的sql语句字段位置是这样的....  

select htbh, fbf, cbf, nian,yue, ri, qx_glq, qx_zyz, jbt_zw1 from .... 

可是查出来放进list里以后 字段位置就不是这样了..  
{jbt_zw1=水, yue=3, cbf=周鹏, qx_zyz=2, fbf=公司, ri=1, qx_glq=1, nian=2011, htbh=861} 

我想问下 怎么能变回sql里那样的顺序呢

问题补充:
AngelAndAngel 写道
应该不会这样啊 list是有序的。你把你封装成list的过程代码贴一下



public List chaList(String sql){ 
  List list=new ArrayList(); 
  JdbcTemplate jdbcTemplate=new JdbcTemplate(dataSource); 
  list=jdbcTemplate.queryForList(sql); 
  return list; 
}

问题补充:
AngelAndAngel 写道
你sql放到数据库客户端工具里面 是查出来有序的么?



我用的sql server 2000  用企业管理器查显示的和sql语句里是一样的顺序。。

问题补充:
AngelAndAngel 写道
你是把字段全部放在list里面哦



额 对啊  把查出来的所有东西都放list里。。

问题补充:
AngelAndAngel 写道
我怀疑是你的字段名有重复 或者不识别什么的,和ls所说,你都加个别名试试。



加完查出来的是这样的 
{f=1, g=1, d=2011, e=3, b=公司, c=周鹏, a=861, h=2, i=水} 

sql:select a.htbh a, a.fbf b, a.cbf c, a.nian d, a.yue e , a.ri f, a.qx_glq g , a.qx_zyz h, b.jbt_zw1 i from。。。

问题补充:
fmjsjx 写道
你用这个queryForList查出来的List里存放的都是HashMap,顺序当然会不一样。



额。。  那应该用什么查呢

问题补充:
fmjsjx 写道
一般是弄一个model出来,HashMap是别指望排序了,但是sql的顺序其实没什么意义,实再需要的话你就不要用HashMap的toString方法,自己按照顺序print就好了……



主要是我要把查出来的数据导出到excel里。。 用到了 

Java代码   收藏代码
  1. int rowIndex = 1;     
  2. int columnIndex = 0;     
  3. for (Map row : list) {     
  4.    // row写入到excel;     
  5.       columnIndex = 0;     
  6.       Set>cellSet=row.entrySet();     
  7. for (java.util.Map.Entry data : cellSet) {     
  8.      String d = data.getValue().toString();  
  9.      tring d = String.valueOf(data.getValue());  
  10.      label = new Label(columnIndex, rowIndex, d);     
  11.      try {     
  12.         sheet.addCell(label);  
  13.      } catch (Exception e) {     
  14.         throw new IOException(e.getMessage());     
  15.        }     
  16.          columnIndex++;     
  17.       }     
  18.      rowIndex++;     
  19.  }    

问题补充:
AngelAndAngel 写道
那你封装到javabean里面吧



我查的是多个表。。。     javabean可以封装多个表的字段么?。。 

以前就是一个表一个javabean没弄过多个表的。。 

应该怎么弄呢。。
Java综合 
2011年10月11日 09:26
给你武将吕布赵云,谋士诸葛亮庞统,你能统一三国?广告新数网络
  • Comment添加评论
  • 关注(0)

12个答案按时间排序按投票排序

0 0

采纳的答案

引用
我查的是多个表。。。     javabean可以封装多个表的字段么?。。 

以前就是一个表一个javabean没弄过多个表的。。 

应该怎么弄呢。。

那你把这个javabean的字段覆盖所有你需要查的,相当于一个视图的bean了。

2011年10月11日 11:05
  • Comment添加评论
0 0

既然是查询出来写入excel,何不封装一个javabean呢,写excel操作javabean要比使用使用单个的字段方便多了

2011年10月11日 10:47
  • Comment添加评论
0 0

话说如果真的要顺序一致,其实也可以做到,就是比较麻烦,记得spring里有个query方法是可以传入一个处理结果集的接口实现的,只要你自己用LinkedHashMap实现一把就好了。

2011年10月11日 10:17
  • Comment添加评论
0 0

那你封装到javabean里面吧

2011年10月11日 10:13
  • Comment添加评论
0 0

一般是弄一个model出来,HashMap是别指望排序了,但是sql的顺序其实没什么意义,实再需要的话你就不要用HashMap的toString方法,自己按照顺序print就好了……

2011年10月11日 10:04
  • Comment添加评论
0 0

换个查询方式吧

2011年10月11日 10:01
  • Comment添加评论
0 0

你用这个queryForList查出来的List里存放的都是HashMap,顺序当然会不一样。

2011年10月11日 09:57
  • Comment添加评论
0 0

我怀疑是你的字段名有重复 或者不识别什么的,和ls所说,你都加个别名试试。

2011年10月11日 09:53
  • Comment添加评论
0 0

你是把字段全部放在list里面哦

2011年10月11日 09:45
  • Comment添加评论
0 0

给每个字段加上别名如: 
select htbh a, fbf b, cbf c, nian d,yue e, ri f, qx_glq g, qx_zyz h, jbt_zw1 from 。。.

2011年10月11日 09:36
  • Comment添加评论
0 0

你sql放到数据库客户端工具里面 是查出来有序的么?

2011年10月11日 09:35
  • Comment添加评论
0 0

应该不会这样啊 list是有序的。你把你封装成list的过程代码贴一下


你可能感兴趣的:(java,集合)