当前页面: 开发资料首页 → JSP 专题 → 求助:一个jsp连接sqlserver数据库的问题
求助:一个jsp连接sqlserver数据库的问题
摘要: 求助:一个jsp连接sqlserver数据库的问题
检验数据库是否连接成功的原程序如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
数据库操作</head>
<body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=xionglu";
String user="sa";
String password="sql";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="insert into dd values('4','xxx','44')";
stmt.executeUpdate(sql);
%>
</body>
出现的错误页面如下:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Exception in JSP: /ok.jsp:20
17:
18: String password="sql";
19:
20: Connection conn= DriverManager.getConnection(url,user,password);
21:
22: Statement stmt=conn.createStatement();
23:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.ok_jsp._jspService(ok_jsp.java:81)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSConnection.
(Unknown Source)
com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
java.sql.DriverManager.getConnection(Unknown Source)
org.apache.jsp.ok_jsp._jspService(ok_jsp.java:62)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.
望高手门指点指点,谢谢大家~!
你有没有把下面三个包导入工程?
检查数据库
msbase.jar
mssqlserver.jar
msutil.jar
是不是端口被占用了,或者数据库路径问题无法连接到数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
没有newInstance()
详细看一下:
http://tech.163.com/05/0830/15/1SDQL2CI00091589.html
数据库没启?数据库没打补丁?
Class.forName是静态方法
.newInstance()应该是不用的
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
从这里看好像是在创建连接的时候出了问题
我以前也碰到过这类问题,原因可能没有打补丁,或者3个包没有放置。
3个包都放进去了,环境变量也设了,这个程序在别人机器上运行都能连接上,而且和我用的是一样的sql server 2000+SQLServer 2000 Driver for JDBC
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
从这句我也感觉是驱动器的问题,但是我重新下载过别的驱动器也还是不行
楼上的兄弟说的补丁是什么?是sql server 2000的补丁吗,我看别人也没打过补丁啊
sp3
谢谢各位,我已经装了sp4补丁了,问题已经解决,再一次表示感谢