<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test"; //user,password 分别为数据库的用户名及密码 String user="sa"; String password="sa"; Connection conn=DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from userinfo"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1)%><br> 您的第二个字段内容为:<%=rs.getString(2)%><br> 您的第三个字段内容为:<%=rs.getString(3)%><br> <%}%> <%out.print("数据库连接成功!!!");%> <%rs.close(); stmt.close(); conn.close(); %> </body> </html>
异常如下,请问怎么解决呢?
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800) org.apache.jsp.t1_jsp._jspService(t1_jsp.java:77) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
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.t1_jsp._jspService(t1_jsp.java:47) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133) javax.servlet.http.HttpServlet.service(HttpServlet.java:856) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248) javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
note The full stack trace of the root cause is available in the Tomcat logs.
----------------解决方案--------------------------------------------------------
建议换个驱动试一下了,MS的东西做的不是很好,用jtds看看
主要问题是这是一个错误的连接
----------------解决方案--------------------------------------------------------
按装sql2000的sp3补丁问题就解决了,
----------------解决方案--------------------------------------------------------
这是一个连接数据库测试的简单例子,错误显示是数据库连接不成功,可能原因很多,.数据库未开启(相信一般不会犯)'
,jdbc驱动的问题,建议重新放置驱动,换个别的列子,再试试,看有什么错
----------------解决方案--------------------------------------------------------
嘿嘿,重装数据库就可以了~多谢各位。。。
----------------解决方案--------------------------------------------------------
这是SqlServer的一个Bug,估计你用的是xp。你如果在win2000而不是Xp上就没此问题。
如果是winxp sp2或者win2003系统,则需要把sqlserver打给sql server2k sp3补丁。
如果你是winxp(没打sp2)或者win2k则不用打这个补丁就可以连接。
如果不想打sqlserver2k的sp3。可以直接去下jdbc的新驱动,名字是:SQL Server 2000 Driver for JDBC Service Pack 3.rar。用这个驱动就可以了。
----------------解决方案--------------------------------------------------------