java - 尝试使用 Java 连接到 SQL Server 2005 时出现 ClassNotFoundException

标签 java sql-server jdbc classnotfoundexception sqlconnection

我对数据库管理相当陌生。我只是尝试连接到数据库并在命令提示符中检索并显示一个表。数据库不在我的电脑上。我相当确定 url 是问题所在。代码:

import java.io.*;
import java.sql.*;

class transfer{

//driver and DB URLs
final static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
final static String DB_SQL = "jdbc:microsoft:sqlserver://localhost:1433;" + "database=DataDB;" + "user=sa;" + "password=1234";

//Database Username and password
final static String user1 = "sa";
final static String pass1 = "1234";

static ResultSet rs;        
public static void main(String args[]) throws SQLException, ClassNotFoundException{

    Connection conn_sql = null;
    Statement stmt_sql = null;
    //Statement stmt_ora = null;

//Register JDBC driver      
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Open Connection   
    System.out.println("Connecting to SQL database...");
    conn_sql = DriverManager.getConnection(DB_SQL, user1, pass1);

//Execute Query
    String sql_query;

    System.out.println("Creating statement for SQL...");
    stmt_sql = conn_sql.createStatement();
    sql_query = "Select * from attendancesummary";
    rs = stmt_sql.executeQuery(sql_query);
    System.out.println("SQL table details");

    System.out.println("Creating statement for SQL...");

    while(rs.next()){
    //Retrieve data
        int cno = rs.getInt("CardNo");
        int in_time = rs.getInt("entry");
        int out_time = rs.getInt("Exittm");
        String name = rs.getString("Name"); 
        int date = rs.getInt("TrDate");

    //Display data
        System.out.print("Employee ID: "+cno);  
        System.out.print("\tName: "+name);
        System.out.print("\tDate:"+date);
        System.out.print("\tEntry: "+in_time);
        System.out.print("\tExit: "+out_time);
    }       

}

}

数据库名称是DataDB,我要检索和显示的表是attendummary。我已将路径设置为“C:\Program Files\Java\jdk1.8.0_11\bin”;“C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar”

代码编译得很好..但是当我运行它时,出现以下错误:

线程“main”中出现异常 java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver 在 java.net.URLClassLoader$1.run 在 java.net.URLClassLoader$1.run 在 java.security.AccessController.doPrivileged 在 java.net.URLClassLoader.findClass 在 java.lang.ClassLoader.loadClass 在 sun.misc.Launcher$AppClassLoader.loadClass 在 java.lang.ClassLoader.loadClass 在 java.lang.Class.forname0 在 java.lang.Class.forname 在transfer.main

我真的迷失了。任何帮助将不胜感激!

最佳答案

这意味着运行代码时CLASSPATH中缺少sqljdbc4.jar。如果您从命令行运行此命令,请在 java 命令的 -cp 开关中添加 sqljdbc4.jar 的路径。

如果您从 Eclipse 运行,请在构建路径中添加 sqljdbc4.jar

关于java - 尝试使用 Java 连接到 SQL Server 2005 时出现 ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24954818/

相关文章:

sql-server - 是否可以使用 Microsoft 2013 sharepoint 搜索服务器作为我的网站的搜索引擎

mysql - SQL查询根据特定条件显示唯一记录

java - 使用日期类型更新 JTable 单元格

Java:JDBC ResultSet 未填充所有查询结果

java - 关于double和bigdecimal的精度问题

javascript - 如何调用 Nashorn CompiledScript 中的方法?

java - Android 上的 MVC 模式

java - 自动配置数据源失败 : 'spring.datasource.url' is not specified

SQL查询将多行值归一化为一行一列字段

java - 如何在java中检查mysql错误