小弟今天第一次JDBC连接sql2000 然而出现了一大堆问题,让我一直头疼到现在,看下面的测试程序和异常
程序:
import java.sql.*;public class ConnectionDemo {
public static void main(String[] args) {
Connection con=null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="Feng";
String password="1234";
con=DriverManager.getConnection(url,user,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
finally
{
try {
if(con!=null)
con.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.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:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at packageSQL.ConnectionDemo.main(ConnectionDemo.java:15)出现这个异常,就是说明连接sql出现错误,我看了sql的端口号是1433,然后我的登陆模式也是混合模式,还有我的sql server sp4也打了!看异常的最后一行(程序中的红色部分)错误,我看了一下,感觉没错到底什么错误??..现在小弟无计可施,很无奈,很着急!望高手指教!。。
程序:
import java.sql.*;public class ConnectionDemo {
public static void main(String[] args) {
Connection con=null;
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";
String user="Feng";
String password="1234";
con=DriverManager.getConnection(url,user,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
finally
{
try {
if(con!=null)
con.close();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.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:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at packageSQL.ConnectionDemo.main(ConnectionDemo.java:15)出现这个异常,就是说明连接sql出现错误,我看了sql的端口号是1433,然后我的登陆模式也是混合模式,还有我的sql server sp4也打了!看异常的最后一行(程序中的红色部分)错误,我看了一下,感觉没错到底什么错误??..现在小弟无计可施,很无奈,很着急!望高手指教!。。
2:下载并安装与SQL连接的JDBC驱动,要及时打补丁.
3:将JDBC所在目录下的lib目录下的三个.jar文件加到classpath中.加入后classpath中的路径应 为:,;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;D:\Java\jdk1.6.0_01\lib或把 这三个文件拷贝到Java\jre1.6.0_01\lib\ext下.
4:在所建工程中也有导入这三个库文件.
5:打开数据库服务器,建立相应的数据库和表.
6:编写相应的测试程序:
package mypackage;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;class JDBCConnectionTest{
public static void main(String args[])
{
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://localhost:1433";
String user ="sa";//这里替换成你自已的数据库用户名
String password = "sa";//这里替换成你自已的数据库用户密码
String sqlStr = "select * from schoolManger.dbo.student"; try{ //这里的异常处理语句是必需的.否则不能通过编译!
Class.forName(driverName);
System.out.println( "类实例化成功!" ); Connection con = DriverManager.getConnection(url,user,password);
System.out.println( "创建连接对像成功!" ); Statement st = con.createStatement();
System.out.println( "创建Statement成功!" ); ResultSet rs = st.executeQuery(sqlStr);
System.out.println( "操作数据表成功!" ); while(rs.next())
{
System.out.print(rs.getInt("Sno") + " ");
System.out.print(rs.getString("Sname") + " ");
System.out.print(rs.getInt("Sage") + " ");
System.out.print(rs.getString("Ssex") + " ");
System.out.println(rs.getString("Sclass"));
}
rs.close();
st.close();
con.close();
}
catch(Exception err){
err.printStackTrace(System.out);
}
}
}
输出相应的结果:
创建连接对像成功!
创建Statement成功!
操作数据表成功!1 xxx 22 男 2004050304
2 yyy 21 男 2004050304
还有问题的话E我[email protected]
GOOD LUCK
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Unable to connect. Invalid URL.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at packageSQL.JDBCConnectionTest.main(JDBCConnectionTest.java:23) 类实例化成功,说明我的sql驱动包没错!但异常象是在说无效的URL,但用的是localhost啊,怎么会无效呢???