2

案例 1:我正在尝试连接到位于远程服务器上的 sql-server 2005 数据库,使用

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        connection = DriverManager.getConnection("jdbc:sqlserver://190.128.4.195/unicodedemo?user=ab&password=ab@Admin&useUnicode=true&characterEncoding=UTF-8");

当我执行时,出现以下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host 190.128.4.195/unicodedemo?user=ab&password=ab@Admin&useUnicode=true&characterEncoding=UTF-8, port 1433 has failed. Error: "null. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".

案例2:但是当我尝试使用数据源名称时

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
connection  = java.sql.DriverManager.getConnection("jdbc:odbc:unidemo","ab","ab@Admin");

数据成功插入,但在这种情况下,它没有显示插入的 Unicode 数据。其显示为?????

任何人都可以帮助解决错误吗?当我在案例 1 中提交时,如何使用第二种情况(即使用 DSN)插入 Unicode 值。

谢谢..

4

2 回答 2

3

案例一:SQL Server 的连接 URL 格式如下:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

这意味着您可能应该将连接 URL 更改为

jdbc:sqlserver://190.128.4.195;databaseName=unicodedemo;user=ab;password=ab@Admin;useUnicode=true;characterEncoding=UTF-8
于 2014-01-14T21:59:45.380 回答
0

尝试像这样使用,它对我有用:

jdbc:sqlserver://190.128.4.195\instanceName:1433;databaseName=unicodedemo;user=ab&password=ab@Admin&useUnicode=true&characterEncoding=UTF-8
于 2019-08-20T06:57:00.067 回答