我是JDBC应用程序开发的新手。我正在使用Visual Studio 2005编写JDBC应用程序。我需要将我的应用程序连接到MS SQL Server 2005.我已经安装了JDBC驱动程序3.0。 Java运行时版本1.6也安装在我的机器上。
我正在编写一个简单的代码来连接SQL服务器。我在inviromnet变量列表中设置了CLASSPATH。这是代码
package MyJDBCApp;
import java.sql.*;
import java.util.*;
public class Connect
{
public static void main(String[] args)
{
String url = "jdbc:sqlserver://NOI1-501791:1433;databaseName=test;user=sa; password=asdf1234;";
Connection con;
Statement stmt;
try
{
Class.forName("com.sqlserver.jdbc.SQLServerDriver");
}
catch (java.lang.ClassNotFoundException e)
{
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
}
try
{
con = DriverManager.getConnection(url);
if (con != null)
con.close();
}
catch (SQLException ex)
{
System.err.println("SQLException: " + ex.getMessage());
}
}
}
每当我尝试调试此应用程序时,我都会收到Class not found异常。 任何人都可以帮我解决这个问题。
提前致谢。 问候 祖拜尔
答案 0 :(得分:0)
通常不应使用CLASSPATH
环境变量。它主要是Java早期的人工制品。通常程序有自己的私有类路径。
在IDE中,类路径是项目类路径(也就是构建路径),在IDE之外,它通常是jar清单中的Class-Path:
条目。
只有在没有其他设置类路径的方法的情况下运行命令行时才会使用CLASSPATH
环境变量(在使用java -jar
或java -cp
时完成)。
因此,您需要将JDBC驱动程序添加到项目类路径中。此外,如果您使用sqljdbc4.jar(它是MS SQL Server JDBC 3.0中的JDBC 4驱动程序),那么您甚至不需要执行Class.forName(...)
,因为JDBC 4引入了自动驱动程序注册。