Java 查询在JDBC中使用时返回的行数少于SQL developer

Java 查询在JDBC中使用时返回的行数少于SQL developer,java,oracle,jdbc,Java,Oracle,Jdbc,我使用JDBC通过prepareStatement和executeQuery连接到oracle数据库。但当我使用来自SQLDeveloper的同一个数据库查询时,我发现通过JDBC返回的行比实际的行少很多 这是否可能是由于连接问题、查询或语句造成的。有人能帮我吗 下面是我在SQLDeveloper中运行的查询- select count(*) from xxx where (TIME_STAMP between TO_TIMESTAMP('2015-12-22 09:

我使用JDBC通过prepareStatement和executeQuery连接到oracle数据库。但当我使用来自SQLDeveloper的同一个数据库查询时,我发现通过JDBC返回的行比实际的行少很多

这是否可能是由于连接问题、查询或语句造成的。有人能帮我吗

下面是我在SQLDeveloper中运行的查询-

select count(*) 
from xxx 
where (TIME_STAMP between 
           TO_TIMESTAMP('2015-12-22 09:45:37.0','YYYY-MM-DD HH24:MI:SS.ff') 
           and TO_TIMESTAMP('2015-12-22 09:55:37.0','YYYY-MM-DD HH24:MI:SS.ff')) 
AND (customerid not like '[null]') 
AND (applicationid not like '[null]') 
and (status not like '-');
编辑:我在while(resultSet.next())中使用了一个变量计数器来计算返回的行数,从中我知道返回的行数是不同的。下面是JDBC代码-

 String query = "select * from xxx where 
 (TIME_STAMP between TO_TIMESTAMP('2015-12-22 09:45:37.0','YYYY-MM-DD HH24:MI:SS.ff') and 
 TO_TIMESTAMP('2015-12-22 09:55:37.0','YYYY-MM-DD HH24:MI:SS.ff')) 
 AND (customerid not like '[null]') 
 AND (applicationid not like '[null]') 
 and (status not like '-')";
        stmt = con.prepareStatement(query);
        rs = stmt.executeQuery(query);
        while (rs.next()) {
 counter++; }

首先,请确保您连接到同一个数据库。(如果您有可能用于测试的其他人)


然后,看看您的查询,最可疑的一点似乎是日期转换。您可以分析两个不同的结果集,并检查输入的日期周期是否与结果匹配。如果其中一个包含日期值方面的意外结果,则问题可能与Java虚拟机或Oracle服务器的默认时区有关。

首先,请确保连接到同一数据库。(如果您有可能用于测试的其他人)


然后,看看您的查询,最可疑的一点似乎是日期转换。您可以分析两个不同的结果集,并检查输入的日期周期是否与结果匹配。如果其中一个包含日期值方面的意外结果,则问题可能与Java虚拟机或Oracle服务器的默认时区有关。

select count(*)
您的查询将始终只返回一行,即仅返回计数。多行的问题在哪里?这是我在SQL developer中用来检查行数的查询。在JDBC中,我在while中使用了一个变量(resultSet.next())来检查返回了多少行。请发布您在SQL developer中(complete语句)和通过JDBC(complete
prepareStatement()
executeQuery()
调用)运行的确切查询。因为现在的答案是:您没有运行相同的查询。@LalitKumarB我用complete编辑过details@Jaydeep在JDBC代码中使用
count(*)
时会发生什么情况?
select count(*)
您的查询将始终只返回一行,即仅返回计数。多行的问题在哪里?这是我在SQL developer中用来检查行数的查询。在JDBC中,我在while中使用了一个变量(resultSet.next())来检查返回了多少行。请发布您在SQL developer中(complete语句)和通过JDBC(complete
prepareStatement()
executeQuery()
调用)运行的确切查询。因为现在的答案是:您没有运行相同的查询。@LalitKumarB我用complete编辑过details@Jaydeep在JDBC代码中也使用
count(*)
时会发生什么?