2011-09-06 6 views
0

MS SQL 데이터베이스에 연결하려는 JAVA 클래스가 있습니다. 이제 데이터베이스에 연결할 때 "적합한 드라이버를 찾을 수 없습니다 ....."라는 메시지가 나타납니다.MS SQL 데이터베이스를 Java 프로그램에 연결

왜 이런 일이 발생합니까?

다음은 코드입니다.

DB db = bew DB(); 
db.dbConnect(); 

... 

class DB 
{ 
    public void dbConnect() { 
     try 
     { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      String connectionUrl = "jdbc:sqlserver://web.address.com;" + 
       "databaseName=testdb;user=user.name;password=*****;"; 

      Connection con = DriverManager.getConnection(connectionUrl); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace();     
     } 
    } 
} 

나는 내 드라이버로 sqljdbc.jar를 사용하고 클래스 패스에 추가했습니다.

답변

4

되는 SQLException는 : 없음 적합한 드라이버는이 예외가 연결을 얻기 위해 사용하는 JDBC URL은 JDBC 드라이버의 지원까지로드되지 않음을 의미합니다

하는 결과가 없습니다. 따라서이 예외에는 적어도 세 가지 원인이있을 수 있습니다.

  • 올바른 드라이버가로드되지 않았습니다.
  • 드라이버를로드하지 못했지만 예외가 발생하여 코드가 계속 실행되어 중단되지 않고 연결을 시도하게됩니다.
  • JDBC URL이 잘못되었습니다.

의 당신이 멀리했습니다 무엇인지 살펴 보자 : 당신은 Microsoft SQL Server 데이터베이스를 사용하고

  • .
  • Sun JDBC-ODBC 브리지 드라이버를로드했습니다.
  • SQL Server JDBC 드라이버에만 해당되는 JDBC URL을 사용하고 있습니다.

아, 잘못된 JDBC 드라이버를로드했습니다.

Microsoft SQL Server JDBC driver 또는 적어도 jTDS JDBC driver이 필요합니다. 실제로는 타사 드라이버이며 SQL Server를 지원하지만 Microsoft 자체 JDBC 드라이버보다 훨씬 뛰어나다 고합니다. 설명서에서 드라이버를로드하기 위해 지정할 드라이버 클래스 이름을 찾을 수 있습니다. Microsoft 하나를 들어, 다음입니다 :

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 
+0

은 실제로 당신이 "마이크로 소프트 SQL 서버 JDBC 드라이버"를 제공했습니다 사이트 내 드라이버를 다운로드 한. 왜 드라이버 이름이 다르며 "com.microsoft.jdbc.sqlserver.SQLServerDriver"가 아닌지 궁금합니다. 지금은 매우 혼란 스럽네요. : –

+0

아마 당신은 문서를 읽지 않고 잘못된 코드 단편을 복사하고 있었습니까? JDBC-ODBC 브리지 드라이버는 MS Access 나 DSN을 만들 수있는 다른 DB에서만 작동합니다. – BalusC

관련 문제