用于连接到 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 中的 ClassNotFoundException
是 java.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?