JDBC SQL Server连接不返回任何结果

JDBC SQL Server连接不返回任何结果

问题描述:

我正在将目前在MYSQL下运行的应用程序转换为使用SQL Server。结果是,我有一个奇怪的情况!现有查询通过JDBC在MySQL中工作,并且在MySQL中作为命令行查询工作 - 但是,尽管在命令行中作为查询使用SQL Server工作室内部工作,但同样的查询不能通过SQL Server JDBC驱动程序工作。JDBC SQL Server连接不返回任何结果

在MYSQL JDBC下我得到一组结果,在SQL Server JDBC下我得到0个结果。

我试着查询这种方式(它在命令行中的SQL Server工作)

SELECT DISTINCT 
    x, 
    y 
FROM 
    table1, 
    table2 
WHERE 
    x = y 
AND start_date <= '2015-05-15' 
AND end_date >= '2015-05-15' 
AND direction LIKE 'Direction'; 

这里面JDBC是这样的:

"select DISTINCT x, y from table1, table2" + 
         "WHERE x=y and start_date <= ? and end_date >= ? and direction like ?" 
+0

也许没有关于连接条件的匹配数据? –

+0

我检查了MYSQL和SQL Server中的数据,两者在结构和内容上都是相同的。 MYSQL版本返回2行,SQL Server返回0行。 –

+0

你正在连接到同一个数据库作为同一个用户?是否记录了任何错误? – DaveH

答案是,SQL服务器需要用'%'分隔%。如本例:

Using "like" wildcard in prepared statement

我们的代码工作正常使用MySQL驱动程序,但司机在这方面明显不同。我简化了该帖子,以防其他人遇到此问题并找到此帖。