代码如下:
package com.jrc.jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest { /**
 * @param args
 * @throws SQLException 
 */
//public final static String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
//public final static String URL="jdbc:sqlserver://127.1:1433;DatabaseName=MySchool";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// TODO Auto-generated method stub
Connection conn=null;
Statement st=null;
ResultSet rs=null;

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn =                    DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=StudentS");
st = conn.createStatement();
System.out.println("连接成功");
rs = st.executeQuery("select*from dbo.Table_1");
while(rs.next()){
System.out.println(rs.getInt(1)+"\t");
System.out.println(rs.getInt(2)+"\t");
System.out.println(rs.getString(3)+"\t");


rs.close();
st.close();
conn.close();
}}
运行时出现这样的错误:
Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at com.jrc.jdbc.JdbcTest.main(JdbcTest.java:27)
sql server的TCP服务我也开了,就是不知道问题错在哪???
我那个驱动包名是:sqljdbc.jar
电脑运行系统是:Win7

解决方案 »

  1.   

    user=MyUserName;password=*****加这两个属性
      

  2.   

    我的sql server2005是用windows 身份验证的啊!
      

  3.   

    为了更好的给LZ解释清楚,我自己动手安装了SQLServer2005 ,还好有自己还有64bit版的。结果不会影响。(因为我自己的电脑是64bit)关于JDBC连接的代码我就不封装了,完全按照LZ的代码来。
    如下:package sqlserver;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;public class JdbcTest {
        
        public static void main(String []args) {
            Connection conn = null;
            Statement stmt = null;
            ResultSet rs = null;
            try {
                //注册驱动
                Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                //创建连接
                conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=StudentS","sa","sa");
                //创建语句
                stmt = conn.createStatement();
                //执行语句
                rs = stmt.executeQuery("select * from dbo.Table_1");
                //处理语句
                while(rs.next() && rs != null) {
                    System.out.println(rs.getInt(1)+"\t");
                    System.out.println(rs.getInt(2)+"\t");
                    System.out.println(rs.getString(3)+"\t");
                }
                //释放资源
                rs.close();
                stmt.close();
                conn.close();
                
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }}
    为了排除问题,我首先没有开启TCP/IP
    第一次报错如下
    console:com.microsoft.sqlserver.jdbc.SQLServerException: 到主机  的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:207)
    at sqlserver.JdbcTest.main(JdbcTest.java:19)
    开启TCP/IP后:
    这时服务器需要重新启动
    停止 SQLServer2005服务器
    net stop mssqlserver
    启动 SQLServer2005服务器
    net start mssqlserverconsole:
    2013-4-5 16:07:07 com.microsoft.sqlserver.jdbc.AuthenticationJNI <clinit>
    警告: Failed to load the sqljdbc_auth.dll
    com.microsoft.sqlserver.jdbc.SQLServerException: 用户 '' 登录失败。该用户与可信 SQL Server 连接无关联。
    at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
    at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(Unknown Source)
    at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(Unknown Source)
    at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:207)
    at sqlserver.JdbcTest.main(JdbcTest.java:19)提示我未输入用户名。按照以上代码运行正确结果:
    但是未出现LZ现在的结果。很遗憾,未能重现。
    console:2000
    robbin
    2
    2300
    archmage数据库表:create database StudentS
    go
    USE StudentS
    GO
    CREATE TABLE dbo.Table_1(
    id int primary key,
    salary int ,
    username varchar (50)
    ) insert into dbo.Table_1 (id,salary,username) values (1,2000,'robbin');
    insert into dbo.Table_1 (id,salary,username) values (2,2300,'archmage');
      

  4.   


    //conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=StudentS");
                conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=StudentS","sa","sa");最主要是这两句代码。其实这个,我写这么多可能多余了。因为问题很容易发现,只是重现LZ的异常,难。