有遇到同样问题的吗??下面是主要代码: @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 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 12 2 2 2 2 2 2 22 2 2 2 2 2 2 22 2 2 2 2 2 2 23 3 3 3 3 3 3 33 3 3 3 3 3 3 33 3 3 3 3 3 3 33 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)求解。求高手路过。只有高手能解决。。

解决方案 »

  1.   

    两者区别很明显,只是没有分组的问题
    private static final String QUERYPARSEINFO = " select * from parse_XXX order by ? ? ";
    把sql加上group by 就行了
      

  2.   

    字段“q”为ID字段(不重复),其它字段可以重复,我是要找出所有记录并按“g”来排序,楼上的那样来个group by结果就去掉了字段“g”的重复数据了,所以是不行的。谢谢回复
      

  3.   

    getJdbcTemplate().query(QUERYPARSEINFO,new Object[]{g,f} new RowMapper()
    你这是按照g和f同时排序,并不只是按照g来排序
      

  4.   

    return getJdbcTemplate().query(QUERYPARSEINFO,new Object[]{g,f} new RowMapper()
    等同于return getJdbcTemplate().query(QUERYPARSEINFO,new Object[]{g(字段名),ASC} new RowMapper() 
    之后SQL语句就会变成:select * from parse_XXX order by g ASC
    只是按照字段“g”排序
      

  5.   

    估计问题出在spring封装的返回LIST里面,求高手解疑
      

  6.   

    找到问题了 ,是SQL拼接问题,拼接后sql里面的排序字段有引号导致排序不正常.
      

  7.   

    问题出在这个地方
    private static final String QUERYPARSEINFO = " select * from parse_XXX order by ?  ? ";
    把SQL语句写到方法里改成用参数传进来就可以了。是SQL版本的问提。
    public List<Parse> queryParseList(String g,String j)//g=排序字段 //f=asc{
    String QUERYPARSEINFO = " select * from parse_XXX order by g  j ";return getJdbcTemplate().query(QUERYPARSEINFO,new Object[]{g,f} new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException {