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 文件
- 右键单击您的项目。
- 单击构建路径
- 单击配置路径
- 单击添加外部 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 中的 ClassNotFoundException
是 java.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
是您的架构名称。
希望您的问题能得到解决。 :)