注册 登录
编程论坛 J2EE论坛

连接数据库问题

帅浪 发布于 2008-04-28 12:02, 1928 次点击
写了个JDBC连接SQLServer的测试程序,但却出现了如下的错误,大家帮我看下为什么,是不是没有连上数据库呢?
我用的是eclipse ,也在工程中导入了那三个包!
程序如下:
22 回复
#2
帅浪2008-04-28 12:03
回复 1# 的帖子
import java.sql.*;

public class MyDB {
    public static void main(String[] args) {

        //加载驱动程序
        try {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        } catch (ClassNotFoundException ex) {
        }

         String str =
        "jdbc:microsoft:sqlserver://localhost:1433;databasename=hyp";
        try {
            Connection con = DriverManager.getConnection(str,
                    "sa", "");
            Statement sta = con.createStatement();

            ResultSet res = sta.executeQuery("select * from hyp1");

            while(res.next()) {
                System.out.print(res.getString("Sno"));
                System.out.print(res.getString("Sname"));
            }

                  res.close();
            sta.close();
            con.close();

        } catch (SQLException ex1) {
            ex1.printStackTrace();
        }
    }
}
错误如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at MyDB.main(MyDB.java:15)
#3
Ethip2008-04-28 12:07
回复 2# 的帖子
SQL Server 2K 的服务管理器没有打开!
#4
帅浪2008-04-28 12:10
回复 3# 的帖子
是指SQL Server服务管理器吗?打开了啊!
#5
帅浪2008-04-28 20:21
回复 4# 的帖子
知道的给回答个啊?
#6
帅浪2008-04-29 13:08
知道的给回答个啊?
#7
Starlove2008-04-30 15:32
看下你sql的端口是否是1433
可能是这里问题
#8
sbfeeq2008-05-03 22:13
上面的报错显示你的程序是第十五行有错误,你可以检查下,你的1433端口号是不是被别的程序占用,或。驱动包是否导入 或你的系统有问题
以前我遇到过这样的一个问题,别人说的方法我都试过,可以数据库都连不上,后来装了个SP3的补丁,才知道,是操作系统的问题,
#9
huhuanqadn2008-05-04 18:27
应该是要加个sp3补丁的.
#10
cfk06212008-05-05 19:05
我记得有两个jar包应该导入的!
#11
罗彬2008-05-06 14:10
我认为加载SQL数据库像这样用能够连接起,你那个好像比较复杂样

    String sql="select * from 表名";
try{
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection("jdbc:odbc:自己建立ODBC数据源的名字","sa"," ");
    PreparedStatement pstmt=con.prepareStatement(sql);
    ResultSet rs=pstmt.executeQuery();
    
    while(rs.next())
    {
        out.println(rs.getString(1));
        out.println(rs.getString(2));
        out.println(rs.getInt(3));
    }
}catch(Exception e)
{out.println("df");}%>
#12
fty1232008-05-06 15:48
要加补丁
要加sp3补丁
#13
帅浪2008-05-07 07:25
回复 2# 的帖子
现在打了SP3补丁,我还重装了系统,问题是这样的呢?大家帮我看看!程序还是如下!
package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class MyDB {
    public static void main(String[] args) {

        //加载驱动程序
        try {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
        } catch (ClassNotFoundException ex) {
        }

         String str =
        "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hyp";
        try {
            Connection con = DriverManager.getConnection(str,"sa", "");
            Statement sta = con.createStatement();
            ResultSet res = sta.executeQuery("select * from hyp1");
               while(res.next()) {
                System.out.print(res.getString("Sno"));
                System.out.print(res.getString("Sname"));
            }

                  res.close();
            sta.close();
            con.close();

        } catch (SQLException ex1) {
            ex1.printStackTrace();
        }
    }
}
错误如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at JDBC.MyDB.main(MyDB.java:19)
如果真连接不好,只能用ODBC连接方法了?不过我觉得这个连接方法啊!那个是不是每次都要配置数据源?
#14
帅浪2008-05-07 16:38
回复 13# 的帖子
没人回答我,就没人和我情况一样吗?
#15
汪洋兽2008-05-07 23:45
驱动程序没有吧,应该是...
#16
fty1232008-05-08 09:43
先开端口打开没有
先开端口打开没有-》再看sqlserver服务启动没有 —》在加sp3补丁
#17
罗彬2008-05-08 21:27
我一直都在用odbc建立连接,不过看了你的后,如果你只是上边那个错误,我试了一下,应该是你的端口号有问题.
1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库 2)在相应"数据库"上单击右键,选择"属性" 3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入 4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433 5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400) .
如果以上还发生错误你就自己下载SP4,一定连接成功.
#18
天使坠落的眼泪2008-05-08 23:14
不光是要到如,还要把他们扔在jdk jre lib ext下面,并且在classpath中配置,你这个应该是端口问题,socket通信
#19
天使坠落的眼泪2008-05-08 23:14
不光要导入
#20
认识铁哥不2008-05-10 22:42
需要3个驱动包
#21
认识铁哥不2008-05-10 22:44
用odbc就简单了
#22
jian04872008-05-27 11:30
出现那个问题是因为数据库没有升级问题所造成的啊
         你只要下一个数据库的升级版本就可以了 啊
#23
Ethip2008-05-27 13:48
回复 1# 帅浪 的帖子
看来大家对这个问题都很内行,另外我的个人空间里也有Java连接SQL Server 2K的文章!
1