JDBC-javacan';看不到已安装的驱动程序

JDBC-javacan';看不到已安装的驱动程序,java,sql-server,jdbc,Java,Sql Server,Jdbc,我对JDBC驱动程序有问题。我无法连接我的SQL Server数据库。以下测试代码: 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 {

我对JDBC驱动程序有问题。我无法连接我的SQL Server数据库。以下测试代码:

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) {}
         }
}}
当我尝试运行此代码时,仍然收到错误:

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

我已经将sqljdbc4.jar的路径添加到classpath变量,并将chs\auth\x64本地化添加到path变量。我正在使用JRE 1.8、SQL Server 2014和Windows 7。

这是因为您尚未加载驱动程序。只需修改现有代码

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) {}
 }

请将它们添加到类路径您使用的是什么IDE,如何将驱动程序添加到路径?如何运行代码?另外:全局
classpath
变量已弃用,不应使用。启动应用程序时,应该指定类路径
java-cp sqljdbc4.jar;yourapp.jar测试
此代码仅用于测试。我在其他应用程序(Pentaho数据集成、scriptella等)中使用JDBC,但它们报告的错误与我的代码中的相同。这不是应用程序的问题,这是驱动程序的问题。您如何执行此操作?显示您使用的命令行。此外,考虑删除<代码>之后的空白空间;代码>,因为AFAIK Microsoft JDBC驱动程序的解析器不支持/允许空格,因此如果您有较新的JDBC驱动程序(支持JDBC 4.0的驱动程序),则不需要使用空格。我不知道OP正在使用的MS SQL Server驱动程序是否是JDBC 4.0驱动程序。自2006年以来,这是不必要的(上下文中带有该驱动程序的web应用程序除外)。@标记web应用程序通常使用JNDI,以便从数据源获得连接(不需要Class.forName)。此外,即使是类型4驱动程序,类加载器也不会总是加载驱动程序,因此显式调用class.forName可能会有所帮助。根据我的经验,许多web应用程序根本不需要JNDI或服务器级数据源。DriverManager的行为是可预测的:它将自动在初始类路径上加载驱动程序,而不是在上下文类路径上加载驱动程序。Oracle文档表示,使用JNDI是为web应用程序获得db连接的推荐方法。当然,许多网络应用开发者可能并不在意。不管怎样,就这样吧。