Honny ~ 轟尼 ~ 厚~你~
2008年1月4日 星期五
使用JDBC時出現No suitable driver的問題
昨天嘗試使用JDBC來連結SQL Server 2005的資料庫,從Microsoft的網站上面download JDBC 1.1 for SQL Server,看這書上的說明,開始準備連結資料庫:
String ConnectionURL = "jdbc:microsoft:sqlserver://localhost:1433;databaseName=Test;user=sa;password=******";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(ConnectionURL );
我將我的ConnectionURL依照書上的範例程式輸入,可是確出現"No suitable driver"的Error,到底怎麼回事?
打開JDBC 1.1中附的範本程式碼,如下:
// Create a variable for the connection string. String connectionUrl = "jdbc:sqlserver://localhost:1433;" + "databaseName=AdventureWorks;user=UserName;password=*****"; // Declare the JDBC objects. Connection con = null; Statement stmt = null; ResultSet rs = null; try { // Establish the connection. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); con = DriverManager.getConnection(connectionUrl); // Create and execute an SQL statement that returns some data. String SQL = "SELECT TOP 10 * FROM Person.Contact"; stmt = con.createStatement(); rs = stmt.executeQuery(SQL); // Iterate through the data in the result set and display it. while (rs.next()) { System.out.println(rs.getString(4) + " " + rs.getString(6)); }似乎發現問題了,再試著從資料源下手,取出資料源中的URL,如下:
SQLServerDataSource ds = new SQLServerDataSource();
String ConnString = ds.getURL();
透過輸出來看看ConnString的內容,發現竟然是"jdbc:sqlserver://",迷題揭曉了,書上寫錯了,那個應該是舊版的URL的方式,還是使用資料源的方式來取得與設定比較安全,於是修改程式如下:
SQLServerDataSource ds = new SQLServerDataSource();
ds.setServerName(host);
ds.setPortNumber(Integer.parseInt(port));
ds.setDatabaseName(database);
ds.setUser(user);
ds.setPassword(password);
conn = ds.getConnection();
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言