注册 登录
编程论坛 J2EE论坛

JSP连接数据库连接不上,求解

aotoman 发布于 2016-06-01 23:26, 7303 次点击
我在eclipse中建立了一个项目叫helloworld,在WEBroot下建立了一个sql.jsp文件,文件代码如下:
我的代码,是从网上抄来的。其中数据库名称,数据库登录名和数据库密码已经改为自己的了。
<%--
    Document : Connection
    Created on : 2012-1-3, 22:32:09
    Author : Administrator
--%>

<%@page language="java" import="java.util.*" import="java.sql.*" pageEncoding="gb2312" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP连接SQL Server数据库示例</title>
    </head>
    <body>
        <%
            Connection conn = null;
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
            String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
            String user = "sa";
            String password = "aa123456a";
            conn = DriverManager.getConnection(url,user,password);
            out.println("取得连接");
            out.print(conn.toString());
         %>
    </body>
</html>

然后我通过在eclipse中的浏览器运行:http://localhost:8080/helloworld/sql.jsp
显示一下错误:
HTTP Status 500 - An exception occurred processing JSP page /sql.jsp at line 17

--------------------------------------------------------------------------------

type Exception report

message An exception occurred processing JSP page /sql.jsp at line 17

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 /sql.jsp at line 17

14:     <body>
15:         <%
16:             Connection conn = null;
17:             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
18:             String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
19:             String user = "sa";
20:             String password = "aa123456a";


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:462)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


root cause

javax.servlet.ServletException: java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
    org.apache.jsp.sql_jsp._jspService(sql_jsp.java:119)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


root cause

java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
    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(Class.java:264)
    org.apache.jsp.sql_jsp._jspService(sql_jsp.java:97)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.

说明:1.我已经下载了msbase.jar,mssqlserver.jar,msutil.jar 这三个文件,并且也放在了tomcat下面。
       2.我也是启动了tomcat下运行的。
       3.我的项目图片下有一个小的感叹号,不知道为什么。
7 回复
#2
GrayJerry2016-11-29 16:13
com.microsoft.jdbc.sqlserver.SQLServerDriver,是不是这个类名写错了
#3
GrayJerry2016-12-01 17:35
包是不是没有放在项目的lib目录下
#4
寒墨轩2017-05-26 16:15
17行出现错误
#5
XiwiNetWork2017-06-23 09:15
程序代码:
   
    private String DRIVER = "com.mysql.jdbc.Driver";
    private String URL = "jdbc:mysql://地址:端口/数据库名称";
    private String USER = "账号";
    private String PASSWORD = "密码";
    private Statement ConnectionHandle;
    private ResultSet rs = null;
    private Connection conn = null;
public Statement Initialize(){
        try{
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
            ConnectionHandle = conn.createStatement();
            return ConnectionHandle;
            //成功返回 Statement 作为连接句柄类型
            
//反之 null
        }catch(Exception e){
            return null;
        }
    }
#6
寒墨轩2017-09-16 21:28
名称要一致
#7
wangjianlin20082017-09-19 17:40
请没有正确的引入sqlserver的jar包,所以找不到驱动类,sql2000和2005,2008,它们的jar包都不一样哦!
#8
寒墨轩2017-11-03 10:23
只有本站会员才能查看附件,请 登录
这个文件有没有部署
1