用于连接到 Sql Server 并从 Eclipse 运行示例查询的 Java 程序

Posted

技术标签:

【中文标题】用于连接到 Sql Server 并从 Eclipse 运行示例查询的 Java 程序【英文标题】:Java program to connect to Sql Server and running the sample query From Eclipse 【发布时间】: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文件添加到类路径 【参考方案1】:

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

sqlserver.jdbc 不是jdbc.sqlserver

【讨论】:

【参考方案2】:

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

    右键单击您的项目。 点击构建路径 点击配置路径 点击添加外部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】:

link 有sqlserver 的驱动程序,下载并将其添加到您的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

以上是关于用于连接到 Sql Server 并从 Eclipse 运行示例查询的 Java 程序的主要内容,如果未能解决你的问题,请参考以下文章

VB - 连接到本地 SQL 服务器并从 excel 将数据加载到表中

Tomcat 未连接到 SQL Server Express

是否可以将 PHP 连接到 SQL Server Compact Edition?

如何使用 Windows 身份验证通过 sqlalchemy 连接到 SQL Server?

如何从 Power BI 连接到 SQL Server 数据库? [关闭]

ADODB连接不会连接到sql server Express