Java 程序连接到 Sql Server 并运行示例查询 From Eclipse


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

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

sqlserver.jdbc不是jdbc.sqlserver

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

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

请参阅以下链接。

您应该进行两个重要的更改

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

&in URL "jdbc:sqlserver://localhost:1433"+";d atabaseName=AdventureWorks2008R2"

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

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

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

添加sqlserver.jar这是链接

顾名思义,Java 中的 ClassNotFoundExceptionjava.lang.Exception 的子类,当 Java 虚拟机尝试加载特定类并且在类路径中找不到请求的类时出现。

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

甲骨文文档

public class ClassNotFoundException
 extends ReflectiveOperationException

当应用程序尝试使用以下方法通过其字符串名称加载类时引发:

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

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

下载

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 SQL Server 的 JDBC 驱动程序 4.0)。您将找到两个 jar 文件 sqljdbc.jar(适用于 JDBC 3.0)和 sqljdbc4.jar(适用于 JDBC 4.0),以及一些.dll文件和 HTML 帮助文件。

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

只需像这样更改查询:

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

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

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

最新更新