unicode支持使用数据源名称与sqlserver建立jdbc连接

时间:2012-01-23 10:09:37

标签: java jdbc jdbc-odbc

案例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)。

谢谢..

2 个答案:

答案 0 :(得分:3)

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

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

这意味着您应该将连接网址更改为

jdbc:sqlserver://190.128.4.195;databaseName=unicodedemo;user=ab;password=ab@Admin;useUnicode=true;characterEncoding=UTF-8

答案 1 :(得分:0)

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

jdbc:sqlserver://190.128.4.195\instanceName:1433;databaseName=unicodedemo;user=ab&password=ab@Admin&useUnicode=true&characterEncoding=UTF-8