使用 Eclipse 在 JAVA 中连接 SQL Server,错误:ClassNotFoundException

Posted

技术标签:

【中文标题】使用 Eclipse 在 JAVA 中连接 SQL Server,错误:ClassNotFoundException【英文标题】:Connecting SQL Server in JAVA using Eclipse, Error: ClassNotFoundException 【发布时间】:2015-01-16 02:46:16 【问题描述】:

目标是使用 Java 连接到 MS SQL Server 数据库并执行一些 SQL 语句。 查找类时出现问题,错误:java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

尝试了两个类名 com.microsoft.jdbc.sqlserver.SQLServerDrivercom.microsoft.sqlserver.jdbc.SQLServerDriver

类路径也在 Eclipse 中设置为:

CLASSPATH C:/Program Files/Microsoft JDBC Driver 4.1 for SQL Server/sqljdbc_4.1/enu/sqljdbc.jar

还将win7环境变量更改为:

.;C:\Program Files\Microsoft JDBC Driver 4.1 for SQL Server\sqljdbc_4.1\enu\sqljdbc.jar;C:\Program Files\Microsoft JDBC Driver 4.1 for SQL Server\sqljdbc_4.1\enu\sqljdbc4.jar;C:\Program Files\Microsoft JDBC Driver 4.1 for SQL Server\sqljdbc_4.1\enu\sqljdbc41.jar;

使用此代码:

package edu.umt.oop.lecture7;

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

public class databasepro 

    public static void main(String[] args)
      
        Connection connection = null;
        try
        
          // the sql server driver string
          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

          // the sql server url
          String url = "jdbc:microsoft:sqlserver://C-LHE-CS-68541:1433;DatabaseName=CMSA_Console";

          // get the sql server database connection
          connection = DriverManager.getConnection(url,"sa", "123456");


          System.out.println("\nSuccess");
          // now do whatever you want to do with the connection
          // ...

        
        catch (ClassNotFoundException e)
        
          e.printStackTrace();
          System.exit(1);
        
        catch (SQLException e)
        
          e.printStackTrace();
          System.exit(2);
        
      



抛出的完全错误是:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at edu.umt.oop.lecture7.databasepro.main(databasepro.java:15)

【问题讨论】:

***.com/questions/22253551/…的可能重复 应用程序很少使用类路径环境变量。您需要将 一个 并且只有一个 SQL Server jar(最好是 sqljdbc41.jar)添加到应用程序的构建路径(如果从 Eclipse 运行),或者在独立运行时添加到运行时类路径 【参考方案1】:

这是由于jar 文件造成的。因此,从下面的链接下载jar 文件,并将其下载到 IDE 中的项目库中,例如日食。

Download Jar

【讨论】:

以上是关于使用 Eclipse 在 JAVA 中连接 SQL Server,错误:ClassNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse Java Neon 通过JDBC连接SQL Server2008

java (Eclipse)连接MySQL数据库

Eclipse IDE for Java Developers(4.10.0)建立与SQL Server 2008数据库的连接

使用 Java 连接 SQL Server 2005 Express

从 Oracle sql developer 或 eclipse 数据源资源管理器连接 HyperSQL Db

eclipse用jdbc连接SQL server时出现了问题……这是啥情况啊!请大神指教!