日期:2014-05-17  浏览次数:20824 次

用Spring jdbctemplate做排序的时候出现查出数据顺序与数据库不一致的现象,求解
有遇到同样问题的吗??

下面是主要代码:

 

@Repository("cbaDao")

public class CBADaoImpl extends JdbcDaoSupport implements ICBADao {

 

private static final String QUERYPARSEINFO = " select * from parse_XXX order by ?  ? ";

 

@SuppressWarnings("unchecked")

public List<Parse> queryParseList(String g,String j)//g=排序字段 //f=asc

{

return getJdbcTemplate().query(QUERYPARSEINFO,new Object[]{g,f} new RowMapper() {

 public Object mapRow(ResultSet rs, int rowNum)

 throws SQLException {

 Parse parse=new Parse();

 parse.setq(rs.getString("q"));

parse.setw(rs.getString("w"));

parse.sete(rs.getString("e"));

parse.setr(rs.getString("r"));

parse.sett(rs.getInt("t"));

parse.sety(rs.getInt("y"));

parse.setu(rs.getString("u"));

parse.seti(rs.getString("i"));

parse.seto(rs.getString("o"));

parse.setp(rs.getString("p"));

 return parse;

 }

 });

}

}

 

 

数据库排序字段后结果是 :

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

2 2 2 2 2 2 2 2

2 2 2 2 2 2 2 2

2 2 2 2 2 2 2 2

3 3 3 3 3 3 3 3

3 3 3 3 3 3 3 3

3 3 3 3 3 3 3 3

3 3 3 3 3 3 3 3

走程序显示到页面后的结果是:

1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 
3 3 3 3 3 3 3 3 
1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 
3 3 3 3 3 3 3 3 
1 1 1 1 1 1 1 1 
2 2 2 2 2 2 2 2 
3 3 3 3 3 3 3 3 
。。。。。。。。。。 

 

排除页面问题和其它问题,自己将问题定位在spring框架的数据封装的某个环节(列如:RowMapper)

求解。。。。求高手路过。。。。只有高手能解决。。。。。
------解决方案--------------------
高手在哪里,急死了。。。。
------解决方案--------------------
两者区别很明显,只是没有分组的问题
private static final String QUERYPARSEINFO = " select * from parse_XXX order by ? ? ";
把sql加上group by 就行了
------解决方案--------------------
字段“q”为ID字段(不重复),其它字段可以重复,我是要找出所有记录并按“g”来排序,楼上的那样来个group by结果就去掉了字段“g”的重复数据了,所以是不行的。

谢谢回复
------解决方案--------------------
getJdbcTemplate().query(QUERYPARSEINFO,new Object[]{g,f} new RowMapper()
你这是按照g和f同时排序,并不只是按照g来排序
------解决方案--------------------