代码如下:
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
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
如下: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');
//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的异常,难。