这个问题是老问题了,我在csdn里也看了好多的的办法,可一直没解决。
XP+jdk2.4+Tomcat5.0+sql server 2000升级到了sp4
那三个jar文件都导入了command/lib和我建的目录的lib里面。这是我的测试代码:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%
String sql = "select * from test";
// 连接字符串,格式: "jdbc:公司名称:数据库驱动名称://数据库服务器ip:端口//号;DatabaseName=数据库名称"
String url = "jdbc:microsoft:sqlserver://localhost:1400;DatabaseName=pubs";
String username = "";
String password = "";
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection conn = DriverManager.getConnection(url, username, password); 
Statement  stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet  rs   = stmt.executeQuery(sql);
%>
<HTML>
<BODY>
<% 
while ( rs.next() ) 
{
%>
<%
}
rs.close();
stmt.close();
conn.close();
%> 
</BODY>
</HTML> 
有人说1433这端口在XP sp2里面被那个了,所以我在SQL里把它改成1400。可结果都一样:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
org.apache.jsp.test_jsp._jspService(test_jsp.java:79)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:148)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:69)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:141)
org.apache.jsp.test_jsp._jspService(test_jsp.java:51)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.各位大虾,帮解决一下。就配置连数据库,去了我三天了!

解决方案 »

  1.   

    把SQL SERVER的JDBC驱动程序放在你的虚拟目录下的WEB-INF/lib目录下,是三个jar文件,注意路径大小写
      

  2.   

    注意,在XP中安装SQLSERVER要打SQLSERVER的SP2补丁
      

  3.   

    你可以换一种连接方法,不需要这三个包的,只要一个包就行了
    Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
    String url="jdbc:jtds:sqlserver://192.168.0.102:1433;DatabaseName=chengXin";
    String user = "sa"; 
    String pass = "123";
    mobjConn = DriverManager.getConnection(url,user,pass);
    包在我的网站里,http://www.mob8.cn/baby/jtds-0.9-rc2.jar
    你去下载试一下吧,我一直都用这种方式的
      

  4.   

    这是我成功配置总结的,和你的环境一模一样,有兴趣看看
    http://www.sendsong.cn/blog/note/1776.html
      

  5.   

    恩,java连数据库确实是很麻烦,我学了java几天了,第一天就是连数据库,连成功了,
    楼主不要急,你要自己考虑你哪一步可能出错了?
    1,你用的是不是记事本写代码的,如果不是,请用记事本写.
    2.你是不是用JBuilderX等环境下写的代码的,如果是,应该将那3个jar文件添加到工程的当前项目中, 而不是 "导入了command/lib和我建的目录的lib里面。"
    3.你的jdbc驱动确认是微软的jdbc2000吗?(微软那有两个版本的,一个是jdbc2000,一个是jdbc2005,你用什么数据库就得用什么驱动)
    4你应该加上try catch 来获得一些出错提示,这样问题就容易解决多了
      

  6.   

    楼主是不是直接把三个文件粘贴到lib文件夹下了?我有一次也是这样做的,结果连不上。你把它删了,然后在eclipse中使用==》右键==》paste的方式把那三个文件导入。有可能就OK了
      

  7.   

    哦,忘了说了,在lib文件夹上使用右键
      

  8.   

    安装数据库使用的是windows身份验证.当然不行了.