2017-03-08 17 views
-1

JDBCドライバに問題があります。 SQL Serverデータベースに接続できません。JDBC - javaにインストールされたドライバが表示されない

java.sql.sqlexception no suitable driver found for (..) 

私はパスに変数とENU \認証\ x64の局在をクラスパスにあるsqljdbc4.jarへのパスを追加しました:私はまだエラーを取得し、このコードを実行しようとすると

public class Test { 

public static void main(String[] args) { 

     Connection con = null; 
     String conUrl = "jdbc:sqlserver://localhost:1433; databaseName=mydb; user=root; password=psswd;"; 

    try { 
    con = DriverManager.getConnection(conUrl); 
    System.out.println("OK"); 
    } catch (Exception e) { e.printStackTrace(); } 
     finally { 
      if (con != null) try { con.close(); } catch(Exception e) {} 
     } 
}} 

:テスト用のコードを、次の変数。私はJRE 1.8、SQL Server 2014、Windows 7に取り組んでいます。

+0

クラスパスに追加してください – Satya

+0

どのIDEを使用していますか、どのようにドライバをパスに追加しましたか? – emotionlessbananas

+0

コードをどのように実行しますか?また、グローバルな 'classpath'変数は非推奨であり、使用すべきではありません。 'java -cp sqljdbc4.jar; yourapp.jar Test' –

答えて

-1

ドライバをロードしていないからです。既存のコードを変更するだけです

try { 
//this will load the driver 
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

con = DriverManager.getConnection(conUrl); 
System.out.println("OK"); 
} catch (Exception e) { e.printStackTrace(); } 
    finally { 
     if (con != null) try { con.close(); } catch(Exception e) {} 
} 
+2

新しいJDBCドライバ(JDBC 4.0をサポートするドライバ)がある場合は不要です。 OPが使用しているMS SQL ServerドライバがJDBC 4.0ドライバであるかどうかわかりません。 – Jesper

+0

2006年以来、これはコンテキストでドライバを使用しているWebアプリケーションを除いてこれは必要ありませんでした。 –

+0

@Mark Webアプリケーションは通常、JNDIを使用してDataSourceからの接続を取得します(Class.forNameは不要)。また、クラスローダーは、タイプ4のドライバーであってもドライバーを読み込むとは限りません。そのため、Class.forNameを明示的に呼び出すと役立ちます。 –

関連する問題