2013-07-20 13 views
1

MSSQLSERVER 2008 데이터베이스를 동적으로 생성하는 웹 응용 프로그램에서 작업하고 있습니다.java.sql.SQLException : jdbc : sqlserver에 적합한 드라이버가 없습니다.

그러나 그것은 나에게

java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:1433;databaseName=master 

내 코드를주고는 다음과 같습니다

String dbName = "db1"; 
try { 
    String url = "jdbc:sqlserver://localhost:1433;databaseName=master"; 
    Connection connection = DriverManager.getConnection(
       url, 
       "sa", 
       "roshan14121987"); 

    Statement statement = connection.createStatement(); 
    String sqlquery = "CREATE Database \"" + dbName + "\"; "; 
    statement.executeUpdate(sqlquery); 
    statement.close(); 

    connection.close(); 

} catch(Exception e) { 
    e.printStackTrace(); 
} 

내가 lib 디렉토리에서 sqljdbc4.jar을 추가했습니다. NetBeans (GlassFish 및 Tomcat Server 사용)와 Eclipse IDE (Tomcat Server)에서 모두 시도했습니다.

반면에 간단한 데스크톱 응용 프로그램으로이 작업을 시도했지만 두 IDE에서 모두 정상적으로 작동합니다. lib에 sqljdbc4.jar이 추가되었습니다.

+0

바람둥이의'lib \'폴더에 .JAR을 추가 해보십시오. – acdcjunior

+0

예 lib에 이미 추가했습니다 ... – Aniket

+0

시도해보십시오 :'Connection connection = DriverManager.getConnection ("jdbc : sqlserver : // localhost : 1433; databaseName = master; user = sa; password = roshan14121987");' – acdcjunior

답변

5

DriverManager.getConnection()을 호출하기 전에 SQLServer JDBC 드라이버를로드해야합니다. Class.forName("xxxx"); 여기서 xxxx는 적절한 드라이버 클래스 (패키지 접두사가있는 완전한 이름)입니다.

EDIT : Class.forName ("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 드라이버를로드합니다. 자세한 내용은 MSDN link을 참조하십시오.

+0

+ 1 좋은 캐치, 이건 그럴 수있어! – acdcjunior

+0

@Bimalesh 네, Class.forName ("xxxx")와 함께 작동하지만, 왜 내가 간단한 Java 클래스에서이 동일한 코드를 사용했을 때 Class.forName ("xxxx")없이 작동하는지 혼란 스럽습니다. – Aniket

+0

@Aniket 당신의 코드는 당신의 코드에있는 드라이버를 어딘가에서 참조하거나로드하고 있어야하지만, 어딘가에 초기화 루틴이 될 수 있습니다. Pls 더 깊게 발굴. –

0

오류는 Tomcat Server의 런타임에서 발생합니다. 맞습니까? 난 당신이 sqljdbc4.jar가 서버에 배포되었는지 확인해야한다고 생각합니다.

1

귀하의 전쟁 파일에 WEB-INF/lib 아래에 sqljdbc4.jar이 있습니까? 이것은 $ CATALINA_HOME/lib의 대체 위치이며 웹 응용 프로그램을 독립적으로 유지하는 것이 좋습니다. 또한 서버를 변경해야 할 경우 war를 webapps 디렉토리로 가져와야합니다.

또한 newInstance Class.forName ([데이터베이스 클래스])이 필요하지만 해당 드라이버는 isn't necessary using a JDBC 4.0 일 수 있습니다. 행운을 빌어 요. 다른 문제가 있다면 의견을 남겨주세요.