问题描述
- 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 causejavax.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 causejava.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
求解,各位高手,请赐教!郁闷到想自杀,搞了好久就是不通。
解决方案
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;
}
解决方案二:
换一下驱动包试试,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。
解决方案三:
javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
Jar包没有导入,报类没有找到的异常,试试引入这个里面的jar包。http://download.csdn.net/detail/jinpengyima/4845676
解决方案四:
看样子是jar包出现了问题
解决方案五:
出现这个问题有可能是2方面的问题:
1、jar包,上面的回答已经很全面了
2、java链接sqlserver需要数据库至少打sp3,根据数据库的版本网上下载打好补丁在尝试一下
解决方案六:
驱动包没有!强调一下,jsp最好不要写java代码,虽然最终会转换成servlet,但是写上java代码就是去了jsp的意义。但不是说一点都不能写,不要拘泥于规则。
解决方案七:
有没有解决?解决的方法是什么?为后来遇到同样问题的人一个参考答案,这样只知道问,问后又不了了之的以后谁还会帮助你解决问题?