Class.forName()为什么总是抛出ClassNotFoundException异常呢?(100分)

  • 主题发起人 主题发起人 thewzy
  • 开始时间 开始时间
T

thewzy

Unregistered / Unconfirmed
GUEST, unregistred user!
我的JDBC for sql server2000已经安装好了,也作了配置,而且在database polit中能连接到数据库。三个jar文件的位置为:
c:/Program Files/Microsoft SQL Server 2000 JDBC/lib/msutil.jar
c:/Program Files/Microsoft SQL Server 2000 JDBC/lib/msbase.jar
c:/Program Files/Microsoft SQL Server 2000 JDBC/lib/mssqlserver.jar
但是程序执行到Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")的时候总是有问题,好像是ClassNotFoundException。可是我在环境变量中已经写上了上面三个jar文件的classpath。请高手指点。很着急呀。谢谢大家。
 
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
 
你在什么环境下使用它们的?
是Web 还是Application的?
 
web和Application都是可以用的
以下是简单的jsp范例
jsp连接Sql Server7.0/2000数据库
testsqlserver.jsp
如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为你的数据库的
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from test";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
 
[red]这些我都试过了,可还是不行呀。我估计是动态加载JDBC驱动程序的时候出了问题。需要高手的指点,再都送200分[/red]
 
如果是Web环境请把对应的jar拷到相应的lib目录下的.
如果是Application的环境下,请注意jar的位置的,让它们尽量靠前的.
 
我的程序是Svervlet程序,因该算是Web环境,请船歌把您的思路说的更清楚一点,最好能有详细的操作步骤。十分感谢!
 
说明你的web服务器 是什么??
如果是tomcat
把驱动copy到 tomcat的common/lib目录下就可以了
就可以了
servlet还需要配置web.xml文件 以下是简单的范例
testServlet.java 代码如下 :
package dzsb.web.user;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
/**
* <p>Title: dzsb</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: sun</p>
* @author michael.sun
* @version 1.0
*/
public class testServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html;
charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public voiddo
Get(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>testServlet</title></head>");
out.println("<body bgcolor=/"#ffffff/">");
out.println("<p>The servlet has received a GET. This is the reply.</p>");
out.println("</body></html>");
}
//Process the HTTP Post request
public voiddo
Post(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>testServlet</title></head>");
out.println("<body bgcolor=/"#ffffff/">");
out.println("<p>The servlet has received a POST. This is the reply.</p>");
out.println("</body></html>");
}
//Clean up resources
public void destroy() {
}
}
web.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>testservlet</servlet-name>
<servlet-class>dzsb.web.user.testServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testservlet</servlet-name>
<url-pattern>/testservlet</url-pattern>
</servlet-mapping>
</web-app>
 
沒有加上數據庫的三個包加入ClassPath路徑!
 
后退
顶部