Java 选择不按顺序检索记录的JDBC查询

Java 选择不按顺序检索记录的JDBC查询,java,jdbc,oracle11g,Java,Jdbc,Oracle11g,我正在尝试从oracle db获取记录。我有一个select查询,它实现了ORDERBY子句。现在,当我对蟾蜍进行查询时,我会按照正确的顺序得到结果。i、 上午10:00的记录顺序如下 记录1,记录2,记录3,10点05分记录1,记录2,记录3。这就是我需要的 现在,当我通过java代码获取它时,JDBC。我尝试迭代结果集,但在上午10:05,我得到了记录2、记录1、记录3的顺序。因此,当我将记录添加到arraylist时,该顺序没有被覆盖。 我不想在添加后对arraylist的记录进行排序 有

我正在尝试从oracle db获取记录。我有一个select查询,它实现了ORDERBY子句。现在,当我对蟾蜍进行查询时,我会按照正确的顺序得到结果。i、 上午10:00的记录顺序如下 记录1,记录2,记录3,10点05分记录1,记录2,记录3。这就是我需要的

现在,当我通过java代码获取它时,JDBC。我尝试迭代结果集,但在上午10:05,我得到了记录2、记录1、记录3的顺序。因此,当我将记录添加到arraylist时,该顺序没有被覆盖。 我不想在添加后对arraylist的记录进行排序

有人能告诉我为什么使用jdbc不能按照我们使用toad看到的顺序获取记录吗

示例代码

try{
            List<TestObjVO> testResults = new ArrayList<TestObjVO>();
            double statusValue = 0;

            //Connection code

            pstmt = conn.prepareStatement(QUERY);

            ResultSet rs = pstmt.executeQuery();

            while (rs.next()) { 
                testObj = new TestObjVO();

                String date =  rs.getString(1);
                String status = rs.getString(2);
                String svc_nm= rs.getString(3);         


                if("SUCCESS".equalsIgnoreCase(status)){
                    statusValue = 1;
                }else if("ERROR".equalsIgnoreCase(status)){
                    statusValue = -1;
                }

                testObj.setTime(date);
                testObj.setStatus(statusValue);
                testObj.setSvc_nm(svc_nm);

                testResults.add(testObj);
            }
桌子

create table TABLE_NAME(
  probing_date      TIMESTAMP(6) not null,
  status            VARCHAR2(8) not null,
 service_name      VARCHAR2(128) not null
)

将“选择”更改为类似以下内容:

    SELECT to_char(PROBING_DATE,'DD-MM-YYYY HH24:MI:SS') AS PROBING_DATE_STR, 
         PROBING_DATE,
         STATUS, 
         SERVICE_NAME 
    FROM TABLE_NAME 
   WHERE PROBING_DATE >= (sysdate-30/1440) 
ORDER BY PROBING_DATE,SERVICE_NAME; 

注意,返回了一个额外的字段,即原始时间戳字段。

请添加您的代码是否可以为您的问题添加一些代码请???向我们展示您的实际
SELECT
查询,包括
ORDER BY
子句和相关表的定义(如
CREATE TABLE
语句)请同时发布您的查询。请发布您的完整代码,以帮助您添加以下内容:在语句中,排序是根据实际的时间戳值进行的。对于原始查询,排序是根据
to_char()
函数的结果进行的,给定格式掩码,该函数将无法正常工作。是的,这是真正的答案,但我希望OP尝试了这一点,并询问它为什么有效,至少让他自己尝试获得它。谢谢BigMike!我认为这已经解决了问题。
    SELECT to_char(PROBING_DATE,'DD-MM-YYYY HH24:MI:SS') AS PROBING_DATE_STR, 
         PROBING_DATE,
         STATUS, 
         SERVICE_NAME 
    FROM TABLE_NAME 
   WHERE PROBING_DATE >= (sysdate-30/1440) 
ORDER BY PROBING_DATE,SERVICE_NAME;