萬(wàn)惡的畢業(yè)設計要用到J2EE做B/S/S架構的系統,本來(lái)導師說(shuō)著(zhù)要用Oracle數據庫來(lái)著(zhù),我覺(jué)得Oracle不如SQLServer簡(jiǎn)單易用,就換了SQLServer 2005 。
記得以前做數據庫的課程設計時(shí),想用SQLServer來(lái)著(zhù),但用JDBC怎么都連不上,后來(lái)放棄了SQLServer選用了MySQL?,F在又是同樣的問(wèn)題,在java程序里使用JDBC總是建立連接失敗,經(jīng)過(guò)一段時(shí)間的搜尋,找到了解決方法,貼出來(lái)給廣大遇到同樣問(wèn)題的同胞。
1.去下載一個(gè)SQLServer用的JDBC驅動(dòng)。直接去微軟下載就行,下載下來(lái)是一個(gè)exe文件,運行那個(gè)exe把文件解壓到隨便一個(gè)文件夾,取里面的sqljdbc4.jar和sqljdbc.jar備用。
2.配置SQLServer 2005 。在SQLServer 2005中,默認不開(kāi)啟TCP/IP協(xié)議,此步主要是開(kāi)啟協(xié)議并使SQLServer接受遠程訪(fǎng)問(wèn)。具體步驟如下:
(1)打開(kāi)SQLServer配置管理器(SQLServer Configuration Manager),在配置管理器重轉到SQL Server 2005 網(wǎng)絡(luò )配置(SQL Server 2005 Network Configuration)下面的SQLEXPRESS協(xié)議(Protocols for SQLEXPRESS)。

(2)雙擊TCP/IP那一項打開(kāi)TCP/IP屬性。將”已啟用(Enable)”那一項置為“是”。切換到“IP 地址”選項卡,將“IP ALL”中的“TCP 端口(TCP Port)”設置為1433,然后確定。



(4)重新啟動(dòng)SQLServer服務(wù)。
3.測試連接。會(huì )的同學(xué)請跳過(guò)~~
(1)在SQLServer Management Studio Express中建立數據庫testDB(名字隨便起,數據表也隨便),在testDB中建表
CREATE TABLE user
(
ID bigint NOT NULL,
Name varchar(20) NOT NULL,
Email varchar(50) NULL
)
然后隨便往表里加幾條數據。
(2)建個(gè)java application工程(我用的eclipse,其他IDE雷同),把SQLServer驅動(dòng)導入工程,注意,如果你使用的JDK6,那么導入sqljdbc4.jar,如果是低版本的JDK導入sqljdbc.jar,不要弄錯,否則連接時(shí)會(huì )報錯。
(3)使用JDBC訪(fǎng)問(wèn)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"; // 根據你自己設置的數據庫連接用戶(hù)進(jìn)行設置 String PASSWORD = "123"; // 根據你自己設置的數據庫連接密碼進(jìn)行設置 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(); } } |
(4)運行程序,沒(méi)啥意外的話(huà)應該就OK了。連接代碼與SQLServer2000的有所不同。這兩句可以記下來(lái)備用~
Class.forName(”com.microsoft.sqlserver.jdbc.SQLServerDriver”).newInstance();
String URL = “jdbc:sqlserver://localhost:1433;DatabaseName=數據庫名稱(chēng)”;
聯(lián)系客服