1

Вопрос не был обновлен (The DriverManager больше не загружается вручную, а вместо этого используется метод GetConnection()):Не удается подключиться к SQL Server 2014 с помощью Java

package guii; 

import java.sql.Connection; 
import java.sql.DatabaseMetaData; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

/** 
* This program demonstrates how to establish database connection to Microsoft 
* SQL Server. 
* @author www.codejava.net 
* 
*/ 
public class JdbcSQLServerConnection { 

public static void main(String[] args) { 

    Connection conn = null; 

    try { 

     String dbURL = "jdbc:sqlserver://ASUS\\YES:1433"; 
     String user = "TestingUser"; 
     String pass = "12345"; 
     conn = DriverManager.getConnection(dbURL, user, pass); 
     if (conn != null) { 
      DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData(); 
      System.out.println("Driver name: " + dm.getDriverName()); 
      System.out.println("Driver version: " + dm.getDriverVersion()); 
      System.out.println("Product name: " + dm.getDatabaseProductName()); 
      System.out.println("Product version: " + dm.getDatabaseProductVersion()); 
     } 

    } catch (SQLException ex) { 
     ex.printStackTrace(); 
    } finally { 
     try { 
      if (conn != null && !conn.isClosed()) { 
       conn.close(); 
      } 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 
} 

Проблема заключается в результате исключения из этого кода , Я не могу узнать, почему именно это исключение выбрано.

Имя пользователя, пароль и имя сервера были проверены дважды, и они окончательно верны.

В настоящее время это исключение:

com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'TestingUser'. 
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196) 
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246) 
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2532) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1929) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1917) 
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1061) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833) 
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716) 
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841) 
at java.sql.DriverManager.getConnection(DriverManager.java:664) 
at java.sql.DriverManager.getConnection(DriverManager.java:247) 
at guii.JdbcSQLServerConnection.main(JdbcSQLServerConnection.java:25) 
+0

Ваше имя сервера действительно 'String server =" ASUS \\ YES ";'? –

+0

Я не уверен, но я проверяю свойства сервера в Microsoft SQL Server Management Studio, который он перечисляет. Или любой другой способ узнать имя сервера? – jiahao

+0

Вы пытались использовать проверку подлинности Windows? – giro

ответ

0

Trouble Shooting Примечания

  1. Используйте integratedSecurity = истина снова

  2. Проверьте, если у вас есть sqljdbc_auch.dll в вашем system32 папка Выезд this link-Убедитесь, что вы используете правильный (32 против 64 бит) Убедитесь в том, sqljdbc_auch.dll находится в системном пути Windows,

  3. Проверьте свойство экземпляра сервера установлены правильно: права доступа, убедитесь, что на самом деле слушает в порту 1433, ... проверьте this link и не просто посмотрите на принятый ответ, но и на другие два.

  4. убедитесь, что ваш брандмауэр не предотвращает соединения

  5. проверить, если ваш Java версия соответствует версии JDBC вы используете sqljdbc4.2 потребности Java 1.8, jdbc4.1 нуждается в Java 1.7. look here

+0

@jiahao, что помогло вам в конце? – giro

+0

Ответ, который вы мне дали, помогает мне, но теперь проблема в том, что я не могу подключить его через своего пользователя и пароль. И я не могу получить доступ к моей таблице, используя запрос. Я уже изменил свой запрос (Таблица) на [Имя базы данных]. [Схема]. [Имя таблицы] по-прежнему совпадает с ошибкой Недопустимое имя объекта. Пожалуйста, помогите мне. – jiahao

+0

Я думаю, если вы уже подключены к базе данных [Схема]. [Имя таблицы] должно быть достаточно. Также проверьте права доступа, чтобы вы могли получать доступ к своим таблицам с помощью пользователя Windows. Это должно решить вашу проблему. – giro