8
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 添加到库中。帮助解决这个问题

4

8 回答 8

6

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

sqlserver.jdbc不是jdbc.sqlserver

于 2014-01-29T05:52:25.833 回答
5

您忘记添加sqlserver.jarEclipse 外部库 按照添加 jar 文件的过程

  1. 右键单击您的项目。
  2. 单击构建路径
  3. 单击配置构建路径
  4. 点击添加外部jar,然后给出jar的路径
于 2013-09-27T09:35:25.237 回答
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/

于 2014-04-02T10:33:46.863 回答
1

添加sqlserver.jar 这里是链接

顾名思义,ClassNotFoundExceptionJava 是Java 虚拟机尝试加载特定类但在类路径中找不到请求的类时的子类。java.lang.Exception

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

甲骨文文档

public class ClassNotFoundException
 extends ReflectiveOperationException

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

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

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

于 2013-09-27T09:38:24.213 回答
1

链接包含驱动程序sqlserver,下载并将其添加到您的eclipse构建路径。

于 2013-09-27T09:39:52.200 回答
1

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

于 2013-09-27T09:40:03.960 回答
1

下载 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 文件放在应用程序的类路径下。

于 2014-11-18T09:51:16.417 回答
-2

只需像这样更改查询:

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

如果我没记错的话,Employee你的表名和模式名在哪里。HumanResources

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

于 2015-03-13T07:47:25.780 回答