★▲★▲再加120分解决立马结账:j2dk+tomcat数据库连接问题 建立连接套接字失败,是不是你的SqlServer没有启动,或是端口不对,你使用企业管理器能不鞥连接上你的服务器? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你个例子看看,用到的JDBC是mm.mysql-2.0.14-you-must-unjar-me.jar,要在classpath中调配这个jdbc,用绝对路径就可以<%@ page contentType="text/html;charset=gb2312"%><html><head><meta http-equiv="content-Type" content="text/html;charset=gb2312"><title>注册确认</title><link rel=stylesheet href="bbs.css" type="text/css"></head> <body><Br><br><br><center><%@ page import="java.util.*"%><%@ page import="java.text.*"%><%@ page import="java.lang.*"%><%@ page import="java.io.*"%><%@ page import="java.sql.*"%> <% Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql://192.168.1.61/AddrBook_database?user=heyi&password=123&useUnicode=true&characterEncoding=gb2312"; Connection conn= DriverManager.getConnection(url); //取值 String username=request.getParameter("username"); username= new String(username.getBytes("ISO8859-1"),"GBK"); session.putValue("username",username); String status=request.getParameter("status"); String password=request.getParameter("password"); //已经声明的变量不能再声明,取时间 long miliSeconds = Calendar.getInstance().getTimeInMillis(); long nowtime=miliSeconds/1000; Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql1="select max(UserID) from IM_Users"; out.println(sql1); ResultSet rs1=stmt.executeQuery(sql1); int UserID1; int UserID; int rownum; rs1.last();//记录集指针放到最后一行 rownum=rs1.getRow();//取记录数if (rownum==0){//rs1如果为空不能取东西,不然有错 UserID1=1;}else{ UserID=rs1.getInt(1); UserID1=UserID+1;} String sql="insert into IM_Users(UserID,UserName,Password,HA1,Status,SipUrl,CreateTime) values('"+UserID1+"','"+username+"','"+password+"','"+password+"','"+status+"','"+username+"','"+nowtime+"')"; out.println(sql); stmt1.executeUpdate(sql); //rs.close(); stmt1.close(); rs1.close(); stmt.close(); conn.close(); response.sendRedirect("regok.jsp?username="+username+"");%> Java连接各种数据库的实例 此文中的代码主要列出连接数据库的关键代码,其他访问数据库代码省略1、Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; //mydb为数据库 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库 Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/myDB"; //myDB为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库 Class.forName("com.informix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //myDB为数据库名 Connection conn= DriverManager.getConnection(url); 6、MySQL数据库 Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" //myDB为数据库名 Connection conn= DriverManager.getConnection(url); 7、PostgreSQL数据库 Class.forName("org.postgresql.Driver").newInstance(); String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 String user="myuser"; String password="mypassword"; Connection conn= DriverManager.getConnection(url,user,password); 8、odbc桥接Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //装载JDBC-ODBC驱动程序 strCon = "jdbc:odbc:Test_DB"; //设置数据库连接字符串 ,test_DB 你加SQL的三个驱动jar文件了吗 你加mssql2000的三个驱动了吗,是三个jar文件 你将那三个jar文件驱动,考到lib文件加下了么! 看来我来对了,因为我也有这本书,但是它的光盘里面的程序好烂我把我的程序发给你,测试成功的<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,java.io.*"%><html><body>以下是从MS SQL SERVER 数据库读取的数据:<hr><table border=1><tr><td>图书ID号</td><td>书 名</td><td>出 版 社</td><td>价 格</td></tr><%!String parseChinese(String in) { String s = null; byte temp []; if (in == null) { System.out.println("Warn:Chinese null founded!"); return new String(""); } try { temp=in.getBytes("iso-8859-1"); s = new String(temp); } catch(UnsupportedEncodingException e) { System.out.println (e.toString()); } return s; }%><%! String trans(String chi){ String result=null; byte temp[]; try { temp=chi.getBytes("iso-8859-1"); result=new String(temp); } catch(UnsupportedEncodingException e) { System.out.println(e.toString()); } return result;}%><%!String native2Unicode(String s) { if (s == null || s.length() == 0) { return null; } byte[] buffer = new byte[s.length()]; for (int i = 0; i < s.length(); i++) { buffer[i] = (byte)s.charAt(i); } return new String(buffer); } %><%!String unicode2Native(String s) { if (s == null || s.length() == 0) { return null; } char[] buffer = new char[s.length() * 2]; char c; int j = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) >= 0x100) { c = s.charAt(i); byte []buf = (""+c).getBytes(); buffer[j++] = (char)buf[0]; buffer[j++] = (char)buf[1]; } else { buffer[j++] = s.charAt(i); } } return new String(buffer, 0, j); }%><%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev";//jspdev为你的数据库名称String user="jiayu";String password="jiayu";Connection conn= DriverManager.getConnection(url,user,password);//Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev","LocalSystem","LocalSystem");Statement stmt=conn.createStatement();ResultSet rst=stmt.executeQuery("select * from book order by price");while(rst.next()){ out.println("<tr>"); out.println("<td>"+native2Unicode(rst.getString("bookid"))+"</td>"); out.println("<td>"+rst.getString("bookName")+"</td>"); out.println("<td>"+rst.getString("publisher")+"</td>"); out.println("<td>"+rst.getFloat("price")+"</td>"); out.println("</tr>");}//关闭连接,释放资源rst.close();stmt.close();conn.close();%></table></body></html> 再次提醒各位:我提的问题可以参照:高手请进:j2dk+tomcat数据库连接问题 mssql2000的jdbc驱动,是三个jar文件,拷贝到/web-inf/lib文件夹中 当然你的sqlserver肯定要启动阿 你的代码在机器上是可以正确执行的,我知识修改了库名和表名以及字段,我的配置是win200pro+mssql2000+tomcat5.016此外tomcat5没有sqlserver的jdbc驱动,自己下载一个吧,根据你的贴出来的错误提示是没有启动mssql的服务管理器 yujiabian(流氓兔子雨) 谢谢你你的程序里我修改如下,还是不能运行:String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev";//jspdev为你的数据库名称String user="bn";String password="bn";Connection conn= DriverManager.getConnection(url,user,password);//Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhStatement stmt=conn.createStatement();ost:1433;DatabaseName=jspdev","LocalSystem","LocalSystem");你能把你的配置说一下吗能不能在你的机子上运行一下该程序,谢谢谢谢谢谢谢谢谢谢谢谢!!!!!!!!!!一位老兄说在jbuilder上运行可以痛苦ing!参考了很多文章,环境变量改了一遍又一遍都不行 再次谢谢各位的热心我们用的是局域网,在vc里访问数据库没问题我在我自己的单机上(设置的环境和我们实验室的一样)sql server肯定是运行的steveyue(约翰岳) 你说的jdbc不就是Microsoft SQL Server 2000 Driver for JDBC我不但装了,连补丁都装了请各位在自己的机子上试运行一下!!!thanks!!!! 唉。_____________________________________________________________________________该问题已经结贴 ,得分记录: zairwolfc (300) zairwolfc(君子兰找工中(★★★★★) 讲点职业道德好不好捣什么乱?我又没结贴 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%><html><body>以下是从Ms sql server数据库读取的数据:<hr><table border=1><tr><td>id</td><td>书名</td><td>出版社</td><td>价格</td></tr><%! String trans(String chi){ String result = null; byte temp []; try { temp=chi.getBytes("iso-8859-1"); result = new String(temp); } catch(UnsupportedEncodingException e) { System.out.println (e.toString()); } return result;}%><% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test","sa","sa"); Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery("select * from student;"); while(rst.next()) { out.println("<tr>"); out.println("<td>"+trans(rst.getString("Sno"))+"</td>"); out.println("<td>"+trans(rst.getString("Sname"))+"</td>"); out.println("<td>"+trans(rst.getString("Ssex"))+"</td>"); out.println("<td>"+rst.getFloat("Sage")+"</td>"); out.println("</tr>"); } //关闭连接、释放资源 rst.close(); stmt.close(); con.close(); %> </table></body></html>换成我自己的数据库后的代码,可以正确执行;暂停MSSQL服务管理器后的错误提示如下:type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver][SQLServer]SQL Server ??????????????? org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800) org.apache.jsp.testMssql_jsp._jspService(testMssql_jsp.java:87) 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 JDBC Driver][SQLServer]SQL Server ??????????????? com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source) com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(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.testMssql_jsp._jspService(testMssql_jsp.java:64) 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. 如果你确实是启动了数据库,那么说明你的jdbc驱动有问题 还有可以考虑一下安装mssqlserver的方式,要选择域用户方式安装的,呵呵 我的机器上同时安装了jbuilder是不是会冲突? 没连上数据库,用localhost试试 1、jdbc驱动放对地方了吗?2、out.println("<td>"+trans(rst.getString("Sno"))+"</td>"); out.println("<td>"+trans(rst.getString("Sname"))+"</td>"); out.println("<td>"+trans(rst.getString("Ssex"))+"</td>"); out.println("<td>"+rst.getFloat("Sage")+"</td>");你的表里有这些字段吗? 你的环境:“我是用的局域网服务器是windows 2000 server+mssql 200我的机器上安装的是windows 2000 professional+j2dk+tomcat+mssql2000客户端。”根据你的问题:“javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket”我觉得文提出在urlConnection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev","bn","bn");应改为:Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://服务器的ip;DatabaseName=jspdev","bn","bn"); snowstormlu我靠!你真是高手!我试了,一个字“行”没说的送分其它各位也辛苦了,沾边的都给点,snowstormlu你可不要提意见呀!有福同享 关于hibernate报错 关于ssh Struts2.1 + Spring3.0 + Hibernate3.3的问题 求一个可以运行的博客系统 tomcat 那只猫不见了...求助 struts框架中的titles框架问题 在线等!!! javaapi.jar 求J2EE教材 java 如何利用USB摄像头拍照 SpringSecurity用户验证登录问题 大家讨论一下J2EE的经典使用环境和开发环境,各有什么优缺点。好吗?参与者有分 紧急呼救:jbx+weblogic8.1部署EJB报错! 问一个struts很菜的问题,在线等
<html>
<head>
<meta http-equiv="content-Type" content="text/html;charset=gb2312">
<title>注册确认</title>
<link rel=stylesheet href="bbs.css" type="text/css">
</head>
<body>
<Br><br><br>
<center>
<%@ page import="java.util.*"%>
<%@ page import="java.text.*"%>
<%@ page import="java.lang.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<% Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://192.168.1.61/AddrBook_database?user=heyi&password=123&useUnicode=true&characterEncoding=gb2312";
Connection conn= DriverManager.getConnection(url);
//取值
String username=request.getParameter("username");
username= new String(username.getBytes("ISO8859-1"),"GBK");
session.putValue("username",username);
String status=request.getParameter("status");
String password=request.getParameter("password");
//已经声明的变量不能再声明,取时间
long miliSeconds = Calendar.getInstance().getTimeInMillis();
long nowtime=miliSeconds/1000;
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Statement stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql1="select max(UserID) from IM_Users";
out.println(sql1);
ResultSet rs1=stmt.executeQuery(sql1);
int UserID1;
int UserID;
int rownum;
rs1.last();//记录集指针放到最后一行
rownum=rs1.getRow();//取记录数
if (rownum==0){//rs1如果为空不能取东西,不然有错
UserID1=1;
}else{
UserID=rs1.getInt(1);
UserID1=UserID+1;
}
String sql="insert into IM_Users(UserID,UserName,Password,HA1,Status,SipUrl,CreateTime) values('"+UserID1+"','"+username+"','"+password+"','"+password+"','"+status+"','"+username+"','"+nowtime+"')";
out.println(sql);
stmt1.executeUpdate(sql);
//rs.close();
stmt1.close();
rs1.close();
stmt.close();
conn.close();
response.sendRedirect("regok.jsp?username="+username+"");
%>
此文中的代码主要列出连接数据库的关键代码,其他访问数据库代码省略1、Oracle8/8i/9i数据库(thin模式)
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password); 2、DB2数据库
Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();
String url="jdbc:db2://localhost:5000/sample";
//sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password); 3、Sql Server7.0/2000数据库
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
//mydb为数据库
String user="sa";
String password="";
Connection conn= DriverManager.getConnection(url,user,password); 4、Sybase数据库
Class.forName("com.sybase.jdbc.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/myDB";
//myDB为你的数据库名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps); 5、Informix数据库
Class.forName("com.informix.jdbc.IfxDriver").newInstance();
String url =
"jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver;
user=testuser;password=testpassword";
//myDB为数据库名
Connection conn= DriverManager.getConnection(url); 6、MySQL数据库
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=
true&characterEncoding=8859_1"
//myDB为数据库名
Connection conn= DriverManager.getConnection(url); 7、PostgreSQL数据库
Class.forName("org.postgresql.Driver").newInstance();
String url ="jdbc:postgresql://localhost/myDB"
//myDB为数据库名
String user="myuser";
String password="mypassword";
Connection conn= DriverManager.getConnection(url,user,password); 8、odbc桥接
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //装载JDBC-ODBC驱动程序
strCon = "jdbc:odbc:Test_DB"; //设置数据库连接字符串 ,test_DB
我把我的程序发给你,测试成功的
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<html>
<body>
以下是从MS SQL SERVER 数据库读取的数据:<hr>
<table border=1>
<tr>
<td>图书ID号</td>
<td>书 名</td>
<td>出 版 社</td>
<td>价 格</td>
</tr>
<%!
String parseChinese(String in)
{
String s = null;
byte temp [];
if (in == null)
{
System.out.println("Warn:Chinese null founded!");
return new String("");
}
try
{
temp=in.getBytes("iso-8859-1");
s = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println (e.toString());
}
return s;
}
%>
<%! String trans(String chi)
{
String result=null;
byte temp[];
try
{
temp=chi.getBytes("iso-8859-1");
result=new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println(e.toString());
}
return result;
}
%>
<%!String native2Unicode(String s)
{
if (s == null || s.length() == 0)
{
return null;
}
byte[] buffer = new byte[s.length()];
for (int i = 0; i < s.length(); i++)
{
buffer[i] = (byte)s.charAt(i);
}
return new String(buffer);
}
%>
<%!String unicode2Native(String s)
{
if (s == null || s.length() == 0) {
return null;
}
char[] buffer = new char[s.length() * 2];
char c;
int j = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= 0x100) {
c = s.charAt(i);
byte []buf = (""+c).getBytes();
buffer[j++] = (char)buf[0];
buffer[j++] = (char)buf[1];
}
else {
buffer[j++] = s.charAt(i);
}
}
return new String(buffer, 0, j);
}
%><%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev";
//jspdev为你的数据库名称
String user="jiayu";
String password="jiayu";
Connection conn= DriverManager.getConnection(url,user,password);//Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev","LocalSystem","LocalSystem");
Statement stmt=conn.createStatement();
ResultSet rst=stmt.executeQuery("select * from book order by price");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+native2Unicode(rst.getString("bookid"))+"</td>");
out.println("<td>"+rst.getString("bookName")+"</td>");
out.println("<td>"+rst.getString("publisher")+"</td>");
out.println("<td>"+rst.getFloat("price")+"</td>");
out.println("</tr>");
}
//关闭连接,释放资源
rst.close();
stmt.close();
conn.close();
%>
</table>
</body>
</html>
你的程序里我修改如下,还是不能运行:
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev";
//jspdev为你的数据库名称
String user="bn";
String password="bn";
Connection conn= DriverManager.getConnection(url,user,password);//Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://localhStatement stmt=conn.createStatement();ost:1433;DatabaseName=jspdev","LocalSystem","LocalSystem");
你能把你的配置说一下吗
能不能在你的机子上运行一下该程序,谢谢谢谢谢谢谢谢谢谢谢谢!!!!!!!!!!
一位老兄说在jbuilder上运行可以
痛苦ing!参考了很多文章,环境变量改了一遍又一遍都不行
我们用的是局域网,在vc里访问数据库没问题
我在我自己的单机上(设置的环境和我们实验室的一样)
sql server肯定是运行的
steveyue(约翰岳) 你说的jdbc不就是Microsoft SQL Server 2000 Driver for JDBC我不但装了,连补丁都装了请各位在自己的机子上试运行一下!!!thanks!!!!
捣什么乱?
我又没结贴
<html>
<body>
以下是从Ms sql server数据库读取的数据:<hr>
<table border=1>
<tr><td>id</td><td>书名</td><td>出版社</td><td>价格</td></tr>
<%! String trans(String chi)
{
String result = null;
byte temp [];
try
{
temp=chi.getBytes("iso-8859-1");
result = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println (e.toString());
}
return result;
}
%>
<% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test","sa","sa");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from student;");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+trans(rst.getString("Sno"))+"</td>");
out.println("<td>"+trans(rst.getString("Sname"))+"</td>");
out.println("<td>"+trans(rst.getString("Ssex"))+"</td>");
out.println("<td>"+rst.getFloat("Sage")+"</td>");
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
%>
</table>
</body>
</html>
换成我自己的数据库后的代码,可以正确执行;
暂停MSSQL服务管理器后的错误提示如下:
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver][SQLServer]SQL Server ??????????????? org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.testMssql_jsp._jspService(testMssql_jsp.java:87)
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 JDBC Driver][SQLServer]SQL Server ??????????????? com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(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.testMssql_jsp._jspService(testMssql_jsp.java:64)
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.
是不是会冲突?
2、out.println("<td>"+trans(rst.getString("Sno"))+"</td>");
out.println("<td>"+trans(rst.getString("Sname"))+"</td>");
out.println("<td>"+trans(rst.getString("Ssex"))+"</td>");
out.println("<td>"+rst.getFloat("Sage")+"</td>");
你的表里有这些字段吗?
根据你的问题:“javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket”
我觉得文提出在url
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=jspdev","bn","bn");
应改为:Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://服务器的ip;DatabaseName=jspdev","bn","bn");
我靠!你真是高手!我试了,一个字“行”
没说的送分
其它各位也辛苦了,沾边的都给点,snowstormlu你可不要提意见呀!有福同享