Unicode поддерживает соединение JDBC с SQL Server с использованием имени источника данных - PullRequest
2 голосов
/ 23 января 2012

Случай 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, как я могу вставить значения Unicode, используя второй случай (т.е. используя DSN).

Спасибо ..

1 Ответ

3 голосов
/ 15 января 2014

Случай 1: Формат URL-адреса подключения к SQL Server:

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