Java JDBC JTDS测试连接字符串

时间:2017-07-18 09:50:38

标签: java jdbc jtds

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

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

我用以下代码编译它:

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");

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

我收到以下错误:

println("1.")

我读过有关是否需要

的相互矛盾的帖子
println("2.")
是不是。如果我将该行放在1. Error - net.sourceforge.jtds.jdbc.Driver <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 之间,那么它只会在

之前失败
package it.de.marini.server.dal;

import org.springframework.data.mongodb.repository.MongoRepository;

import it.de.marini.server.model.Role;

public interface RoleRepository extends MongoRepository<Role, String> {

}

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

2 个答案:

答案 0 :(得分:1)

您似乎面临两个问题:

问题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.
...

答案 1 :(得分:0)

让我们分解步骤,从cmd运行以下命令:

cd C:\JavaTest
set path=C:\Progra~1\Java\jdk1.6.0_45\bin
javac example.java
java -cp .;jtds-1.2.jar -Djdbc.drivers=net.sourceforge.jtds.jdbc.Driver Example

最后一行将手动加载驱动程序,因此无需更改代码。

问题是你需要在连接数据库之前注册驱动程序。

  

我读过有关是否需要

的相互矛盾的帖子

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

是的,但你必须把它放在行

之前

Connection con = DriverManager.getConnection(connectionUrl);