Sql server 使用JDBC驱动程序连接sqlserver2008

Sql server 使用JDBC驱动程序连接sqlserver2008,sql-server,jdbc,Sql Server,Jdbc,我正在使用以下代码连接Sql Server 2008: Connection con = null; CallableStatement stmt = null; ResultSet rs = null; try { SQLServerDataSource ds = new SQLServerDataSource(); ds.setIntegratedSecurity(false); ds.setServerName("localhost"); ds.setIn

我正在使用以下代码连接Sql Server 2008:

Connection con = null;
CallableStatement stmt = null;
ResultSet rs = null;

try
{
    SQLServerDataSource ds = new SQLServerDataSource();
    ds.setIntegratedSecurity(false);
    ds.setServerName("localhost");
    ds.setInstanceName("MSSQLSERVER2008");
    ds.setPortNumber(1433);  
    ds.setUser("televic-edu3-dev");
    ds.setPassword("internal");
    ds.setDatabaseName("televic-edu3-dev");
    con = ds.getConnection();
    ...
它给了我以下错误:

用户登录失败 “televic-edu3-dev”。用户不是 与受信任的SQL Server关联 连接

在我的SqlServer实例上启用了混合模式。我已经尝试使用相同的凭据连接到我的SqlServer实例,这很有效。在.NET中,它确实与具有相同凭据的connectionString一起工作。。。那么我做错了什么

这是来自.NET的connectionString:

TLV-EDU-LIC\MSSQLSERVER2008;密码=内部密码;坚持 安全信息=真;使用者 ID=televic-edu3-dev;首字母 目录=televic-edu3-dev

顺便说一句,我也试过了,这给了我同样的错误(这是合乎逻辑的):


您正在使用域(Windows用户名)身份验证,而不是DB身份验证。确保JVM使用相同的Windows用户名运行,因此不是作为系统服务运行。如果这不是一个选项,请改用DB身份验证。

您使用的是域(Windows用户名)身份验证,而不是DB身份验证。确保JVM使用相同的Windows用户名运行,因此不是作为系统服务运行。如果这不是一个选项,请改用DB身份验证。

好的,省略ds.setPortNumber(1433);让它工作。不知道为什么。。。我的sqlserver实例正在端口1433上运行

好吧,省略ds.setPortNumber(1433);让它工作。不知道为什么。。。我的sqlserver实例正在端口1433上运行

ds.setIntegratedSecurity(假);我没看到。我只是将错误消息翻译成易于理解的单词:)奇怪的是,省略端口号会改变很多事情;我没看到。我只是把错误信息翻译成易于理解的文字:)奇怪的是,省略端口号会改变很多事情。
Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try
{
    String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
    "instanceName=MSSQLSERVER2008;databaseName=televic-edu3-dev;
        userName=televic-edu3-dev;password=internal;";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con = DriverManager.getConnection(connectionUrl);