我有一个使用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> {
}
我可能会遗漏一些明显的东西,但请帮我解决这个问题。
答案 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);