读书人

jsp链接sql server 2005异常

发布时间: 2013-12-30 14:16:08 作者: rapoo

jsp链接sql server 2005错误
jsp源代码为

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'test_sql.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*"%>
<%!
Connection con;
Statement sql;
ResultSet rs;
%>
<%

Class.forName("com.microsoft.sqlserver.jdbc");
String url="jdbc:sqlserver://localhost:1433;DatabaseName=mis";
con=DriverManager.getConnection(url,"sa","sa");
sql=con.createStatement();
String sqlexe="select * from identity_check";
rs=sql.executeQuery(sqlexe);
rs.next();
out.println(rs.getString(1));
out.println("数据库连接成功!");
%>
</body>
</html>

错误提示为:
HTTP Status 500 - An exception occurred processing JSP page /test_sql.jsp at line 35

type Exception report

message An exception occurred processing JSP page /test_sql.jsp at line 35

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 /test_sql.jsp at line 35

32: %>
33: <%
34:
35: Class.forName("com.microsoft.sqlserver.jdbc");
36: String url="jdbc:sqlserver://localhost:1433;DatabaseName=mis";
37: con=DriverManager.getConnection(url,"sa","sa");
38: sql=con.createStatement();


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:728)
root cause

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.test_005fsql_jsp._jspService(test_005fsql_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
root cause

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:169)
org.apache.jsp.test_005fsql_jsp._jspService(test_005fsql_jsp.java:105)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
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:728)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.

Apache Tomcat/7.0.47


是我的jdbc 版本不正确吗?


[解决办法]
类没找到,很明显35行,Class.forName("com.microsoft.sqlserver.jdbc");只是包名,没有类名。你改为:
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
[解决办法]


String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法
String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名
String Username="username"; //用户名
String Password="password"; //密码
Class.forName(Driver).new Instance(); //加载数据可驱动
Connection con=DriverManager.getConnection(URL,UserName,Password);


另外jar版本要注意支持

读书人网 >Java Web开发

热点推荐