2 lansewoxin lansewoxin 于 2015.05.29 23:35 提问

JSP菜鸟问连接SQL SERVER 2008的问题

JSP代码
<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*"%>


<%

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DatabaseName=DbTest";
String username="sa";
String password="123456";
Connection conn= DriverManager.getConnection(url,username,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.println("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>

出现问题如下:
HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /WebRoot/test.jsp at line 6

3:
4:


5: <%

6: Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
7: String url="jdbc:sqlserver://localhost:1433;DatabaseName=DbTest";
8:
9: String username="sa";

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.WebRoot.test_jsp._jspService(test_jsp.java:110)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Unknown Source)
org.apache.jsp.WebRoot.test_jsp._jspService(test_jsp.java:68)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.27 logs.

Apache Tomcat/7.0.27

求解,各位高手,请赐教!郁闷到想自杀,搞了好久就是不通。

7个回答

hsfy2012
hsfy2012   2015.05.29 23:38

public Connection getConnection()
{
Connection conn=null;
//链接SQLServer2000

//String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver";

// String SERVANDDB="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=tempdb";

//连接SQLServer2005
String CLASSFORNAME="com.microsoft.sqlserver.jdbc.SQLServerDriver";
String SERVANDDB="jdbc:sqlserver://localhost:1433;DatabaseName=jmorder";

// String SERVANDDB="jdbc:sqlserver://219.229.249.71;DatabaseName=jxpro_manage";
String USER="sa";
String PWD="123";
//String PWD="jxedu";

try
{
Class.forName(CLASSFORNAME);
conn=DriverManager.getConnection(SERVANDDB,USER,PWD);

}catch(Exception ex)
{
ex.printStackTrace();
}
return conn;
}

danielinbiti
danielinbiti   Ds   Rxr 2015.05.29 23:49
 换一下驱动包试试,sqljdbc.jar和sqljdbc4.jar换一下试试

以下是msdn中 JDBC Driver的系统要求中的解释:我们清楚的看到 sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用 sqljdbc.jar 会引发异常。而我的jre为6.0的,自然报异常。

JAR
说明
sqljdbc.jar
sqljdbc.jar 类库提供对 JDBC 3.0 的支持。
sqljdbc.jar 类库要求使用 5.0 版的 Java 运行时环境 (JRE)。连接到数据库时,在 JRE 6.0 上使用
 sqljdbc.jar会引发异常。
 注意:  JDBC 驱动程序不支持 JRE 1.4。使用 JDBC Driver 时必须将 JRE 1.4 升级至 JRE 5.0 或 JRE 6.0。
在某些情况下,您可能需要重新编译应用程序,因为它可能与 JDK 5.0 或更高版本不兼容。
有关详细信息,请参阅 Sun Microsystems 网站上的文档。
sqljdbc4.jar
sqljdbc4.jar 类库提供对 JDBC 4.0 的支持。它不仅包括 sqljdbc.jar 的所有功能,
还包括新增的 JDBC 4.0 方法。
sqljdbc4.jar 类库要求使用 6.0 版的 Java 运行时环境 (JRE)。在 JRE 1.4 或 5.0 上
使用 sqljdbc4.jar 会引发异常。
注意:   如果应用程序必须在 JRE 6.0 上运行,即使该应用程序不使用 JDBC 4.0 功能
,也应使用 sqljdbc4.jar。
guwei4037
guwei4037   Ds   Rxr 2015.05.30 00:07

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

Jar包没有导入,报类没有找到的异常,试试引入这个里面的jar包。http://download.csdn.net/detail/jinpengyima/4845676

qq529376747
qq529376747   2015.05.30 01:04

看样子是jar包出现了问题

susu529
susu529   2015.06.01 10:14

出现这个问题有可能是2方面的问题:
1、jar包,上面的回答已经很全面了
2、java链接sqlserver需要数据库至少打sp3,根据数据库的版本网上下载打好补丁在尝试一下

yiwei00000
yiwei00000   2015.06.01 23:33

驱动包没有!强调一下,jsp最好不要写java代码,虽然最终会转换成servlet,但是写上java代码就是去了jsp的意义。但不是说一点都不能写,不要拘泥于规则。

susu529
susu529   2015.06.29 11:28

有没有解决?解决的方法是什么?为后来遇到同样问题的人一个参考答案,这样只知道问,问后又不了了之的以后谁还会帮助你解决问题?

Csdn user default icon
上传中...
上传图片
插入图片