使用JDBC訪問SQL Server 2005
記得以前做數(shù)據(jù)庫的課程設計時,想用JDBC訪問SQL Server 2005來著,但用JDBC怎么都連不上,后來放棄了SQL Server選用了MySQL?,F(xiàn)在又是同樣的問題,在java程序里使用JDBC總是建立連接失敗,經(jīng)過一段時間的搜尋,找到了解決方法,貼出來給廣大遇到同樣問題的同胞。
1.去下載一個SQL Server用的JDBC驅(qū)動。直接去微軟下載就行,下載下來是一個exe文件,運行那個exe把文件解壓到隨便一個文件夾,取里面的sqljdbc4.jar和sqljdbc.jar備用。
2.配置SQL Server 2005 。在SQL Server 2005中,默認不開啟TCP/IP協(xié)議,此步主要是開啟協(xié)議并使SQL Server接受遠程訪問。具體步驟如下:
(1)打開SQLServer配置管理器(SQLServer Configuration Manager),在配置管理器重轉(zhuǎn)到SQL Server 2005 網(wǎng)絡配置(SQL Server 2005 Network Configuration)下面的SQLEXPRESS協(xié)議(Protocols for SQLEXPRESS)。
(2)雙擊TCP/IP那一項打開TCP/IP屬性。將”已啟用(Enable)”那一項置為“是”。切換到“IP 地址”選項卡,將“IP ALL”中的“TCP 端口(TCP Port)”設置為1433,然后確定。
(3)打開SQL Server 外圍應用配置器(SQLServer Surface Area Configuration),然后打開“服務和連接的外圍應用配置器”,轉(zhuǎn)到SQLEXPRESS->Database Engine->遠程連接,選擇“本地鏈接和遠程連接”下面的“僅使用TCP/IP”或者“同時使用TCP/IP和named pipes”,這里我選擇了前者,然后應用,確定。
(4)重新啟動SQLServer服務。
3.測試連接。會的同學請?zhí)^~~
(1)在SQLServer Management Studio Express中建立數(shù)據(jù)庫testDB(名字隨便起,數(shù)據(jù)表也隨便),在testDB中建表
- CREATE TABLE user
- (
- ID bigint NOT NULL,
- Name varchar(20) NOT NULL,
- Email varchar(50) NULL
- )
然后隨便往表里加幾條數(shù)據(jù)。
(2)建個java application工程(我用的eclipse,其他IDE雷同),把SQLServer驅(qū)動導入工程,注意,如果你使用的JDK6,那么導入sqljdbc4.jar,如果是低版本的JDK導入sqljdbc.jar,不要弄錯,否則連接時會報錯。
(3)使用JDBC訪問SQLServer的測試程序代碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Test { private Connection conn = null; public Test() { super(); } public void getConnection() { try { Class .forName("com.microsoft.sqlserver.jdbc.SQLServerDriver") .newInstance(); String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=testDB"; String USER = "sa"; // 根據(jù)你自己設置的數(shù)據(jù)庫連接用戶進行設置 String PASSWORD = "123"; // 根據(jù)你自己設置的數(shù)據(jù)庫連接密碼進行設置 conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (java.lang.ClassNotFoundException ce) { System.out.println("Get Connection error:"); ce.printStackTrace(); } catch (java.sql.SQLException se) { System.out.println("Get Connection error:"); se.printStackTrace(); } catch (Exception e) { System.out.println("Get Connection error:"); e.printStackTrace(); } } public void testConnection() { if (conn == null) this.getConnection(); try { String sql = "SELECT * FROM user"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { System.out.print(rs.getString("ID")+" "); System.out.print(rs.getString("Name")+" "); System.out.println(rs.getString("Email")); } rs.close(); stmt.close(); } catch (SQLException e) { System.out.println(e.getMessage()); e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { } } } public static void main(String[] args) { Test bean = new Test(); bean.testConnection(); } } |
Class.forName(”com.microsoft.sqlserver.jdbc.SQLServerDriver”).newInstance();
String URL = “jdbc:sqlserver://localhost:1433;DatabaseName=數(shù)據(jù)庫名稱”;
【編輯推薦】