Java JDBC JTDS 测试连接字符串

标签 java jdbc jtds

我有一个使用 JTDS 连接到 SQL Server 的应用程序。我需要更改数据库并希望在重新配置应用程序之前先测试连接字符串。我是一名 SQL Server DBA,而不是 Java 开发人员! 这是我的测试代码:

// Import the SQL Server JDBC Driver classes 
import java.sql.*; 
class Example 
{  
   public static void main(String args[]) 
   {  
   try  
   { 
        // Build the connection string, and get a connection 
        System.out.println("1."); 
        System.out.println("2."); 
        String connectionUrl = "jdbc:jtds:sqlserver://UK-SB-Server:53569;DatabaseName=helpdesk;user=helpdesk;password=MyPwd;Tds=8.0;PrepareSql=3;XaEmulation=false";
        System.out.println("3."); 
        Connection con = DriverManager.getConnection(connectionUrl); 
        System.out.println("Connected."); 

        // Create and execute an SQL statement that returns some data.  
        String SQL = "SELECT * from dbo.AllowedValues";  
        Statement stmt = con.createStatement();  
        ResultSet rs = stmt.executeQuery(SQL); 

        // Iterate through the data in the result set and display it.  
        while (rs.next())  
        {  
           System.out.println(rs.getString(1) + " " + rs.getString(2));  
        } 
   }  
   catch(Exception e)  
   { 
        System.out.println("Error - " + e.getMessage()); 
        System.exit(0);  
   } 
} 
}

我编译它:

C:\Progra~1\Java\jdk1.6.0_45\bin\javac C:\JavaTest\example.java

我运行它:

C:\Progra~1\Java\jdk1.6.0_45\bin\java -classpath C:\JavaTest Example

jtds-1.2.jar和Example.class都在C:\JavaTest

我收到以下错误:

1.
2.
3.
Error - No suitable driver found for jdbc:jtds:sqlserver://UK-SB-Server:53569;DatabaseName=helpdesk;user=helpdesk;password=MyPwd;Tds=8.0;PrepareSql=3;XaEmulation=false

我读过关于我是否需要的相互矛盾的帖子

Class.forName("net.sourceforge.jtds.jdbc.Driver");

或者没有。如果我将行放在 println("1.")println("2.") 之间,它就会提前失败并显示

1.
Error - net.sourceforge.jtds.jdbc.Driver

我可能遗漏了一些明显的东西,但请帮助我解决这个问题。

最佳答案

您似乎面临两个问题:

问题 1. 看来 jTDS 1.2 已经足够老了,您实际上确实需要调用

Class.forName("net.sourceforge.jtds.jdbc.Driver");

在尝试建立连接之前。

问题 2. 当您指定类路径时,您需要显式包含 jTDS jar 文件。也就是说,这行不通......

C:\JavaTest>"\Program Files\Java\jdk1.6.0_45\bin\java.exe" -cp C:/JavaTest Example
1.
Error - net.sourceforge.jtds.jdbc.Driver

...但这对我有用:

C:\JavaTest>"\Program Files\Java\jdk1.6.0_45\bin\java.exe" -cp C:/JavaTest;C:/JavaTest/jtds-1.2.jar Example
1.
2.
3.
Connected.
...

关于Java JDBC JTDS 测试连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45163213/

相关文章:

java - 使用 jTDS 驱动程序的 Kerberos 和集成安全性

java - 开启JIT日志,分析汇编代码,对代码优化有帮助吗?

java - Ubuntu 和 Windows 的奇怪 Eclipse/工作区行为

java - 我可以在二维数组中创建更多列吗?

Java - 使用 JSTL 进行每个循环的基本操作

mysql,字段列表中的未知列

java - 使用 Java 的多个 SQL 查询(效率)

java - 在 Struts2 中维护多个 JDBC 连接

java - jTDS - 运行 Maven 构建的项目时没有合适的驱动程序异常

sql-server - 使用 JTDS 的 JDBC SSL 连接到 IBM Websphere Application Server 6 上的 MS SQL 2008