String driver; String url; String user; String pwd; public DbTest() { driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";; url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =StoreManager"; user = "sa"; pwd = "potsmart10"; init(); } public void init() { try{ Class.forName(driver); System.out.println("driver is ok"); con = DriverManager.getConnection(url,user,pwd); System.out.println("conection is ok"); sta = con.createStatement(); rs = sta.executeQuery("select * from room"); while(rs.next()) System.out.println(rs.getInt("roomNum")); }catch(Exception e) { e.printStackTrace(); } }
public static void main(String args [])//自己替換[] { new DbTest(); } }
這段代碼跟上變得代碼是一樣的,差別在于驅(qū)動,還有url,這是在使用sqlserver driver for jdbc 中遇到的困惑。按道理講,上邊這段代碼應(yīng)該沒錯,可首先我們來看一下,如果SQL Server服務(wù)器沒有升級到sp3(在使用jdbc時,如果系統(tǒng)是xp或者2003務(wù)必要把sqlserver 升級到sp3,往上到處都有下的),我們看看運行結(jié)果
driver is ok java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis hing 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.(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Sou rce) at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S ource) 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:523) at java.sql.DriverManager.getConnection(DriverManager.java:171) at DbTest.init(DbTest.java:32) at DbTest.(DbTest.java:25) at DbTest.main(DbTest.java:46) Press any key to continue...
driver is ok conection is ok java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對 象名 'room' 無效。 at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source ) at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken( Unknown Source) at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Sour ce) at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType (Unknown Source) at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.postImplExecu te(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source) at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown So urce) at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source) at DbTest.init(DbTest.java:35) at DbTest.(DbTest.java:25) at DbTest.main(DbTest.java:46) Press any key to continue...