比如:Oracle数据库
String xjmg = "select case_no from aj_jbb";
Connection con = ConnectionFactory.getCon();
Statement  stmtlist = con.createStatement();
ResultSet rs = stmtlist.executeQuery(xjmg);
List tjList = new ArrayList();
while (rs.next()) {
   tjList.add(rs.getString("case_no"));
}1)rs从结果集中读取的值与直接在pl/sql中执行“select case_no from aj_jbb”显示的结果集
值的顺序不同2)将SQL语句修改成“select case_no from aj_jbb order by case_no asc”,2个结果集的顺序还是不同请问有什么办法,让ResultSet读取的结果集与使用SQL语句在PL/SQL中执行的结果集的值顺序相同吗?

解决方案 »

  1.   

    加了 order by 语句后仍然会排序不同?不会吧。
      

  2.   

    select case_no from aj_jbb order by case_no asc 你仔细看看 不会不同的 在while循环中直接打出来看看
      

  3.   

    List tjList = new ArrayList();
    while (rs.next()) {
      tjList.add(rs.getString("case_no"));
    }
    tjList中的值顺序与直接在PL/SQL中执行的SQL语句得到的结果集之顺序不同。
    比如:通过SQL语句在PL/SQL中执行得到如下:
    a1
    a2
    a3
    ...通过这个rs.getString("case_no");读取的值如下:
    a3
    an
    a1
    ...
      

  4.   

    绝不可能。除非你利用了类似HashSet之类的容器。