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 mydatabase.TestJDBC.main(TestJDBC.java:25)
hello
---------------------------------------------源码----------------------------------
package mydatabase;
import java.sql.*;
public class TestJDBC {
// 定义驱动程序名称
public static final String drivername="com.microsoft.jdbc.sqlserver.SQLServerDriver";
// 定义驱动程序的URL
public static String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=pubs";
// 定义访问数据库用户名
public static final String user="sa";
// 密码
public final String password="";
public static void main(String [] args) throws InstantiationException, IllegalAccessException{
String queryString ="select * from titles";
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
// 加载驱动程序
Class.forName(drivername);
// 建立连接
conn=DriverManager.getConnection(url,"sa","");
// 创建查询
st=conn.createStatement();
// 执行查询
rs=st.executeQuery(queryString);
while(rs.next()){
System.out.println("书名:"+rs.getString("title_id")+
"(定价:"+rs.getDouble("title")+")");
}
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
System.out.println("hello");
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if((st!=null))
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
------------------------------------------------------------------------------------------------------------------
我安装了sqlserver2000, windows 登陆
安装了:Microsoft SQL Server 2000 Driver for JDBC,并将lib下的三个连接数据库的jar复制到了jdk/jre/lib/ext下,还有tomcat下的lib
环境变量我设置为:JDBC_HOME C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
Classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\common\lib\servlet-api.jar;%JDBC_Home%
\lib\msbase.jar;%JDBC_Home%\lib\mssqlserver.jar;%JDBC_Home% \lib\msutil.jar
可是还是报上面的错啊?
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 mydatabase.TestJDBC.main(TestJDBC.java:25)
hello
---------------------------------------------源码----------------------------------
package mydatabase;
import java.sql.*;
public class TestJDBC {
// 定义驱动程序名称
public static final String drivername="com.microsoft.jdbc.sqlserver.SQLServerDriver";
// 定义驱动程序的URL
public static String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=pubs";
// 定义访问数据库用户名
public static final String user="sa";
// 密码
public final String password="";
public static void main(String [] args) throws InstantiationException, IllegalAccessException{
String queryString ="select * from titles";
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
// 加载驱动程序
Class.forName(drivername);
// 建立连接
conn=DriverManager.getConnection(url,"sa","");
// 创建查询
st=conn.createStatement();
// 执行查询
rs=st.executeQuery(queryString);
while(rs.next()){
System.out.println("书名:"+rs.getString("title_id")+
"(定价:"+rs.getDouble("title")+")");
}
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
System.out.println("hello");
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if((st!=null))
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
------------------------------------------------------------------------------------------------------------------
我安装了sqlserver2000, windows 登陆
安装了:Microsoft SQL Server 2000 Driver for JDBC,并将lib下的三个连接数据库的jar复制到了jdk/jre/lib/ext下,还有tomcat下的lib
环境变量我设置为:JDBC_HOME C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
Classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%TOMCAT_HOME%\common\lib\servlet-api.jar;%JDBC_Home%
\lib\msbase.jar;%JDBC_Home%\lib\mssqlserver.jar;%JDBC_Home% \lib\msutil.jar
可是还是报上面的错啊?
public static String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=pubs";
改为:
public static String url="jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs"; 试试。。
st.close();
conn.close();
在finally中关闭就可以了,还有前边定义了user和password,为什么在定义url的时候还要重新写一遍?
自己琢磨一下吧
2.如果上面打了之后没有好,再看看Sqlserver2000的TCP/IP的侦听是否启动.
3.再看1433端口是否允许,主要是防火墙控制.
conn=DriverManager.getConnection(url,"sa","密码");
//要把密码加上去~~~