只有最后的80分了,问一个bean连接sql server的问题,大虾帮忙解决,谢谢!
用bean连接数据库就会出现 Error establishing socket 错误,
如果在页面里面直接写连接,不用bean,连接就是正常的.
这个bean:
package DBconn;
import java.sql.*;
public class DBconn
{
String DBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String connStr="jdbc:microsoft:sqlserver://IP:1443;DatabaseName=school";
String MyUser="user";
String MyPassword="password";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public DBconn()
{
try
{
Class.forName(DBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("DBconn (): " + e.getMessage());
}
}
public ResultSet executeQuery(String sql)
{
rs = null;
try
{
conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;
}
public void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
stmt.executeUpdate(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
}
}
}
出现 Error establishing socket 的错误.
这个是直接写的连接 :
<%
out.println("数据库驱动测试<br>");
java.sql.Connection conn;
java.lang.String sqlConn;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
}
catch (Exception E)
{
out.println("Can't load driver!<br>");
}
try
{
String url = "jdbc:microsoft:sqlserver://IP:1433;DatabaseName=school";
String user="user";
String pass="password";
Connection C =java.sql.DriverManager.getConnection(url,user,pass);
Statement s=C.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs = s.executeQuery("select * from news");
rs.next();
out.println(rs.getString(2));
}
catch (Exception E)
{
out.println("Can't connect database!<br>");
}
%>
这个能正常显示数据库中的内容.
用得是window 2003的系统,tomcat和sql server 分别装在两台服务器上 都是2003 一个局域网里面的.
真地不知道问题出在哪儿,请大虾们指教! 谢谢
问题点数:80、回复次数:9Top
1 楼kui(kui)回复于 2004-12-03 23:44:07 得分 20
是因为sql server 没安装补丁的原因。
——————————————
http://www.javawebstudio.com/Top
2 楼bluebeanss()回复于 2004-12-04 00:05:03 得分 20
对的,装上SQL SERVER2000的SP3补丁就可以了,在微软网站下。。。Top
3 楼dadunqingwa(打盹的青蛙)回复于 2004-12-04 02:25:15 得分 0
呵呵 刚做也犯了这个问题,楼上正解……Top
4 楼classjava(原始野人)回复于 2004-12-04 09:13:40 得分 0
呵呵,没用过sql server
不过道理都一样,不可能好的bean 不能用的,呵呵楼上那些应该是正解Top
5 楼yulchina(为啥我的可用分总是那么少?)回复于 2004-12-04 10:05:05 得分 20
public void executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(ConnStr,MyUser,MyPassword);
stmt.executeUpdate(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeUpdate: " + ex.getMessage());
}
}
}
这一段写地不太对吧,好象少了一句
stmt = conn.createStatment();
你遇到的错误需要打SP3补丁Top
6 楼mowic(追梦)回复于 2004-12-04 11:46:37 得分 0
啊,我打了sp3补丁的Top
7 楼zyg158((DD)OTP)回复于 2004-12-04 18:06:52 得分 20
connStr="jdbc:microsoft:sqlserver://IP:1443;DatabaseName=school";
端口号是1433,
你的两个端口都不一样,粗心!
javabean:
connStr="jdbc:microsoft:sqlserver://IP:1443;DatabaseName=school";
jsp:
String url = "jdbc:microsoft:sqlserver://IP:1433;DatabaseName=school";Top
8 楼mowic(追梦)回复于 2004-12-04 18:24:50 得分 0
呵呵 谢谢 搞定 就是那个端口问题 唉 自己都晕了Top
9 楼kui(kui)回复于 2004-12-04 19:21:27 得分 0
TO mowic(追梦) :
我也没想到,原来是端口问题,我刚才在ttp://www.javawebstudio.com/也解答过类类似的问题,他说打补丁后还是有问题,也许多也你的问题是相同的原因。
希望你到那介绍一下你的办法:
http://www.javawebstudio.com/bbs/dispbbs.asp?boardID=5&ID=82&page=1
Top




