【问题标题】:Java program to connect to Sql Server and running the sample query From Eclipse用于连接到 Sql Server 并从 Eclipse 运行示例查询的 Java 程序
【发布时间】:2013-10-03 13:16:59
【问题描述】:
package sqlselection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Sqlselection 
    {
        public static void main(String[] args)
        {
            try
            {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

                String userName = "sa";
                String password = "password";
                String url = "jdbc:microsoft:sqlserver://localhost:1433"+";databaseName=AdventureWorks2008R2";
                Connection con = DriverManager.getConnection(url, userName, password);
                Statement s1 = con.createStatement();
                ResultSet rs = s1.executeQuery("SELECT TOP 1 * FROM HumanResources.Employee");
                String[] result = new String[20];
                if(rs!=null){
                    while (rs.next()){
                        for(int i = 0; i <result.length ;i++)
                        {
                            for(int j = 0; j <result.length;j++)
                            {
                                result[j]=rs.getString(i);
                            System.out.println(result[j]);
                        }
                        }
                    }
                }

                //String result = new result[20];

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


}

    enter code here

以上是我连接到Sql服务器以从eclipse运行示例选择查询的示例程序。

我收到以下错误。

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.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 sqlselection.Sqlselection.main(Sqlselection.java:13)

我已将 sqljdbc.jar、sqljdbc4.jar 添加到库中。 帮助解决这个问题

【问题讨论】:

  • 将jar文件添加到类路径

标签: java eclipse jdbc jdbc-odbc


【解决方案1】:

问题在于Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); 这一行。类限定名错误

sqlserver.jdbc 不是jdbc.sqlserver

【讨论】:

    【解决方案2】:

    您忘记在 Eclipse 外部库中添加 sqlserver.jar 按照流程添加jar文件

    1. 右键单击您的项目。
    2. 点击构建路径
    3. 点击配置路径
    4. 点击添加外部jar,然后给出jar的路径

    【讨论】:

      【解决方案3】:

      请参考以下链接。

      您应该做出两个重要的改变

      驱动程序名称为“com.microsoft.sqlserver.jdbc.SQLServerDriver”

      & 在 URL "jdbc:sqlserver://localhost:1433"+";databaseName=AdventureWorks2008R2"

      http://www.programcreek.com/2010/05/java-code-for-connecting-ms-sql-server-by-using-sql-server-authentication/

      【讨论】:

        【解决方案4】:

        linksqlserver 的驱动程序,下载并将其添加到您的eclipse 构建路径。

        【讨论】:

          【解决方案5】:

          右键单击您的项目--->构建路径---->配置构建路径---->库选项卡--->添加外部罐子--->(导航到保存sql的位置驱动jar)--->好的

          【讨论】:

            【解决方案6】:

            添加sqlserver.jar 这里是link

            顾名思义,Java 中的 ClassNotFoundExceptionjava.lang.Exception 的子类,当 Java 虚拟机 尝试加载特定类并且 在类路径。

            关于此异常的另一个重要点是,它是一个已检查异常,您需要在使用可能在 java 中通过 try-catch 抛出 ClassNotFoundException 的方法时提供明确的异常处理块或使用 throws 子句。

            Oracle docs

            public class ClassNotFoundException
             extends ReflectiveOperationException
            

            当应用程序尝试通过其字符串名称加载类时抛出:

            • Class 类中的 forName 方法。
            • ClassLoader 类中的 findSystemClass 方法。
            • ClassLoader 类中的 loadClass 方法。

            但找不到具有指定名称的类的定义。

            【讨论】:

              【解决方案7】:

              下载 Microsoft JDBC Driver 4.0 for SQL Server,它支持:

                  SQL Server versions: 2005, 2008, 2008 R2, and 2012.
                  JDK version: 5.0 and 6.0.
              

              运行下载的程序sqljdbc__.exe。它将文件提取到指定目录(默认为 Microsoft JDBC Driver 4.0 for SQL Server)。您将找到两个 jar 文件 sqljdbc.jar(用于 JDBC 3.0)和 sqljdbc4.jar(用于 JDBC 4.0),以及一些 .dll 文件和 HTML 帮助文件。

              如果您使用的是 JDK 4.0,则将 sqljdbc4.jar 文件放在应用程序的类路径下;如果您使用的是 JDK 6.0 或更高版本,则将 sqljdbc4.1.jar 文件放在。

              【讨论】:

                【解决方案8】:

                只需像这样更改查询:

                SELECT TOP 1 * FROM [HumanResources].[Employee]
                

                如果我没记错的话,Employee 是您的表名,HumanResources 是您的架构名称。

                希望您的问题能够得到解决。 :)

                【讨论】:

                • 我很确定这不会修复 jdbc 驱动程序 ClassNotFoundException
                猜你喜欢
                • 2020-06-27
                • 1970-01-01
                • 1970-01-01
                • 2013-03-23
                • 1970-01-01
                • 2016-03-25
                • 2021-02-08
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多