JSP程序连不上SQLServer2000数据库!

lickiswallow 2006-10-13 03:19:30
我是一个jsp新手。现在写的jsp程序连不上数据库。我的所有做法是:
1.在本机上创建了一个数据服务实例5F-125/DOG,设置混合登陆模式,用户名:sa ,密码:1234
在里面建了一个数据库ABC。
2.下载了jdbc驱动,安装目录为C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
3.将安装目录下lib文件夹中的msbase.jar mssqlserver.jar msutil.jar添加到环境变量中,做法
是在CLASSPATH下添加了C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\
lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\
lib\msutil.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\
lib\mssqlserver.jar;
4.然后是写jsp程序,连接数据库的部分是这样的:
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =ABC";
user = "sa";
pwd = "1234";

Class.forName(driver).newInstance();
con = DriverManager.getConnection(url,user,pwd);
sta = con.createStatement();
rs = sta.executeQuery("select * from Data");
5.后来又安装了SQLServer2000的SP4。

仍然无法连接上数据库。
以上的就是我的全部的做法,这其中问题出在哪儿呢?
...全文
1319 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lickiswallow 2006-10-16
  • 打赏
  • 举报
回复
我用telnet localhost 1433测试了,结果是不通。
也按照geministone的说法使用netstat -an查看,1433端口不为listening,这可能就是问题所在了。我曾经打了一个名字为:SQL2000.AS-KB884525-SP4-x86-CHS.EXE 的补丁,不知道这个是不是大家说的SP4补丁。
lickiswallow 2006-10-16
  • 打赏
  • 举报
回复
连上啦! 我在安装了补丁之后,在企业管理器的SQL Server属性配置对话框中,选择“常规”选项卡,查看TCP/IP的属性,在那里面设置默认端口,默认的值是2272,我在程序中在相应的地方改成2272就连上了。然后我把默认端口的值改为1433,原先的程序也可以连上数据库了。
苦恼了几天终于弄明白了。真的非常感谢大家! ^_^
good__student 2006-10-15
  • 打赏
  • 举报
回复
给sqlserver2000数据库打补丁,不是操作系统。
fsdi0254qingyun 2006-10-15
  • 打赏
  • 举报
回复
我这个没有入门的菜鸟也知道一定要打补丁,sp3!!
试试吧!
sougrape 2006-10-15
  • 打赏
  • 举报
回复
遇到过类似问题,一个是要打数据库补丁,我用的sp3,安装数据库驱动,驱动也还有一个补丁,打上后就好了.
yko2008 2006-10-14
  • 打赏
  • 举报
回复
XP SP2肯定也是要打补丁的
fashi1000 2006-10-14
  • 打赏
  • 举报
回复
telnet localhost 1433
看看1433端口通不通
SINCE1978 2006-10-14
  • 打赏
  • 举报
回复
SQLSERVER的驱动其实不用安装,只要把msbase.jar mssqlserver.jar msutil.jar 三个包放到你工程下面的\WEB-INF\lib,程序的数据源获取代码写对就行。
geministone 2006-10-14
  • 打赏
  • 举报
回复
xp系统中SQL Server只可以装个人版,而个人版的SQL Server服务器启动后并不监听1433端口,当然连不上。
可以到以下地址下载SQL2000SP4(SP3也可以)
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5

安装完成后,问题应该就可以解决了

对了,要保证数据服务器是开的哦。最好在命令提示符下键入netstat -an命令看一下,1433端口是否已经listening
lazydot 2006-10-13
  • 打赏
  • 举报
回复
可能是补丁有问题,Error establishing socket,遇到过这个问题
sqlserver2000个人版打了sql2ksp3.exe补丁之后就好了
laiseeme 2006-10-13
  • 打赏
  • 举报
回复
我今天刚遇到这个问题
把tomcat重新安装了一下解决了 呵呵
lickiswallow 2006-10-13
  • 打赏
  • 举报
回复
to human_2(风一帆):怎么检查我的SQL Server是否配置TCP/IP啊?
to fly_to_the_sky:我的系统是Windows XP!
to yfxixi:这个跟异常没有什么关系吧?
ddcoding 2006-10-13
  • 打赏
  • 举报
回复
没有捕获异常
fly_to_the_sky 2006-10-13
  • 打赏
  • 举报
回复
你的系统是什么?如果是2003,有时候要给数据库打sp3。
human_2 2006-10-13
  • 打赏
  • 举报
回复
简单,你用ODBC配置一下,在客户断配置中 地址用IP,用TCP/IP 断口1433,应该是通不了的,
也就是说你这个问题跟JAVA没关系,
你检查你的SQL SERVER 配置是不是用TCP/TP ,是否打补丁了
lickiswallow 2006-10-13
  • 打赏
  • 举报
回复
哦,呵呵,这个地方我用ABC举的一个例子。实际的数据库就是NBA。这个地方没有写错的。
抛开这个,那问题到底出在哪里呢?
freedom2001 2006-10-13
  • 打赏
  • 举报
回复
12: String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=NBA";
还NBA呢,看球看糊涂了吧,你自己的数据库是ABC
lickiswallow 2006-10-13
  • 打赏
  • 举报
回复
是写错了,我改过来了。
也按照jsfhua的说法把msbase.jar mssqlserver.jar msutil.jar 三个包放到你工程下面的\WEB-INF\lib里了。
但是仍然有错:

message

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

exception

org.apache.jasper.JasperException: Exception in JSP: /testdb.jsp:15

12: String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=NBA";
13: String user="sa";
14: String password="1234";
15: Connection conn=DriverManager.getConnection(url,user,password);
16: Statement stmt=conn.createStatement();
17: String sql="select * from Data";
18: ResultSet rs=stmt.executeQuery(sql);


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.testdb_jsp._jspService(testdb_jsp.java:87)
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.<init>(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(DriverManager.java:525)
java.sql.DriverManager.getConnection(DriverManager.java:171)
org.apache.jsp.testdb_jsp._jspService(testdb_jsp.java:58)
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.


yuvictory 2006-10-13
  • 打赏
  • 举报
回复
应该是com.microsoft
xbl001 2006-10-13
  • 打赏
  • 举报
回复
8:
9: <body>
10: <%
11: Class.forName("con.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
12: String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=NBA";
13: String user="sa";
14: String password="1234";

**********************************************

你报错信息的Class.forName后怎么是con.microsoft 你是不是这个写错了

*************************************************
加载更多回复(8)

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧