Java 选择不按顺序检索记录的JDBC查询
我正在尝试从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看到的顺序获取记录吗 示例代码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的记录进行排序 有
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;