1. 程式人生 > >Java連線SQL Server教程全

Java連線SQL Server教程全

首先,在連線資料庫之前必須保證SQL Server是採用SQL Server身份驗證方式而不是windows身份驗證方式。如果在安裝時選用了後者,則重新設定如下:

在預設情況下,SQL Server Express是採用整合的Windows安全驗證且禁用了sa登入名。為了工作組環境下不使用不方便的Windows整合安全驗證,我們要啟用SQL Server Express的混合安全驗證,也就是說由SQL Server來驗證使用者而不是由Windows來驗證使用者

1、開啟SQL Server Management Studio Express
開啟SQL Server,登入介面中身份驗證首先選擇 Windows 身份驗證

,點選連線進入
SQL登入介面

當我們啟動SQL Server Management Studio Express時,首先它要連線到我們的SQL Server 2008 Express,我們在安裝SQL Server 2008 Express時,預設的例項為SQLExpress,伺服器名稱的組成為:機器名\例項名,因此,本例的服務名稱為MATTJASON\SQLEXPRESS(注:安裝SQL Server 2008 Express的機器名為MATTJASON)。第一次使用SQL Server Management Studio Express,由於我們必須採用Windows身份驗證,這是預設安裝時決定的。

2、設定身份驗證


右擊物件資源管理器下的第一行的MATTJASON\SQLEXPRESS(視具體機器名而變),選擇屬性,如下圖所示。
屬性
開啟後選擇安全性
安全性
下面這張圖清晰一點
大圖
選擇好後確認並關閉。
重啟
要求重啟,退出程式,再次進入。這一步很重要!

3、 設定sa的密碼並啟用sa登入名
點選安全性,再點選登入名,看到sa,右擊選擇屬性
sa
開啟後如下圖所示。
由於我們不知道sa的密碼,所以我們須設定一個!更改密碼,可以設定一個簡單好記的,我設定的是qwerty。
並且取消強制實施密碼策略的選項!
sa屬性
不要關閉這個視窗,接著選擇左側的“狀態”,預設情況下,sa登入名是禁用的,因此,我們必須啟用sa登入名,選擇右側的登入下的“啟用”


並且選擇上方的授予!如圖所示。
登入屬性
最後,我們點選視窗下面的“確定”按鈕。
好了,到此為止,SQL Server 2008 Express伺服器已經可以讓sa登入了,不過,

重新啟動一下,讓配置生效

右擊MATTJASON\SQLEXPRESS,選擇重新啟動!很重要!

4、驗證sa登入
退出SQL,重新開啟,選擇SQLServer身份驗證方式,輸入剛才設定的sa密碼,連線!
重啟
如果可以成功進入,那麼就配置成功了,如果進不去,說明剛才有步驟沒有設定,需要重新設定一下,不要著急,我當時也是配置好久。。。。

當你保證SQL Server 2008是採用SQL Server身份驗證方式後,先跳至第7步進行連線測試,如果無法連線則進行第5步。

如下配置:

因為SQL Server 2008裝好後,預設協議是沒有開啟的,所以要開啟SQL Server配置管理器中開啟:

5、SQL Server配置管理器(可選)
安裝好SQL Server 2008後,執行 開始 → 所有程式 → Microsoft SQL Server 2018 → 配置工具 → SQL Server配置管理器,如下圖所示:
SQL配置管理器
開啟的視窗如下圖所示。在左邊欄找到 SQL Server網路配置選項,點開它的小箭頭,會看到“【你的資料庫名】的協議” (圖中是SQLEXPRESS的協議),選中它,看右邊欄。
EXPRESS
Named Pipes 右擊啟用,同樣的,右擊TCP/IP 點選啟用!
雙擊TCP/IP(右鍵→屬性),在彈出的視窗中選擇 “IP地址” 選項卡.
IP1和IP10的【IP地址】設為127.0.0.1,並將所有【IP+數字】的【已啟用】設為是。接著,拖動下拉條到最下方,將IP1、IP10、 IPAll 中的【TCP埠】設成 1433,這是SQL的傳輸埠,非常重要!
1433
IP
重新啟動計算機!

6、開啟telnet並測試1433埠(可選)
接下來使用telnet命令測試1433埠是否開啟。首先要保證telnet服務開啟。
開啟telnet服務:
依次點選“開始”→“控制面板”→“程式”(W10下直接在檔案資源管理器上的搜尋框輸入 控制面板 進入),“在程式和功能”找到並點選“開啟或關閉Windows 功能”進入Windows 功能設定對話方塊。找到並勾選“Telnet客戶端,最後“確定”稍等片刻即可完成安裝。
程式
找到啟用或關閉Windows功能
功能
找到Telnet,點選,確定。
Telnet
安裝完成後,Telnet服務預設情況下是禁用的。還需執行“開始”→“執行”(或者按住win鍵和R鍵),輸入services.msc開啟服務管理器。找到並雙擊Telnet服務項,設定其啟動方式為“手動”(更安全,只在需要的時候才啟用),最後“啟動”該服務“確定”退出即可。

完成上一步後。開始選單 → 執行cmd → 輸入:telnet 127.0.0.1 1433,(注意telnet與127之間有空格,1與1433之間有空格)
CMD
測試是否成功,如果成功則說明配置成功,如果連線失敗則說明上面的配置有誤,同志仍需努力!

下載sqljdbc_4.0.2206.100_chs.tar.gz(2.2M),解壓檔案,得到sqljdbc41.jar和sqljdbc42.jar。如果你使用的是jre1.7版本,則忽略sqljdbc.jar(因為它用不了,而且如果和sqljdbc41.jar一起用會出錯),只留下sqljdbc41.jar

以下設定均針對jre1.7版本(1.7以下應該也適用):

在D盤新建一個資料夾,命名為sqljdbc4,將sqljdbc41.jar複製一個進去。

8、配置環境變數
右擊 我的電腦 → 屬性 → 高階系統設定(高階) → 環境變數,在系統變數中雙擊CLASSPATH變數(或選中CLASSPATH後 → 編輯),在最後面追加 “;D:\sqljdbc4 \sqljdbc41.jar” (注意最前面有個 ; )若不存在CLASSPATH,就新建CLASSPATH變數,並且將其值設為“D:\sqljdbc4 \sqljdbc41.jar”。
環境變數
連續點選 確定 以退出環境變數配置。

有幾個地方需要注意:

(1)我們需要將sqljdbc41.jar類庫檔案拷貝到E:\Program Files\Java\jdk1.7.0\jre\lib\ext目錄下。(看你安裝在哪個盤,如果是C盤,則最前面的E改為C,下同)

(2)我們需要將sqljdbc4.jar類庫檔案拷貝到E:\Program Files\Java\jre7\lib\ext目錄下

最好是,只要是jre資料夾,都複製一個sqljdbc41.jar到jre7\lib\ext裡去!!

(3)如果是使用Tomcat做伺服器(我使用的是Tomcat7),那麼我們需要將sqljdbc4.jar類庫檔案拷貝到C:\apache-tomcat-7.0.11\lib目錄下。

(4)如果是使用Tomcat做伺服器,那麼我們需要將sqljdbc4.jar類庫檔案拷貝到E:\apache-tomcat-7.0.11\webapps\gaofei\WEB-INF\lib目錄下(gaofei目錄是我的應用,這個路徑相信你會看明白)

注意,只有sqljdbc4.jar !!如果把sqljdbc.jar和sqljdbc4.jar都拷在一起的話,這樣就算你全都做對了,也會持續出現有“此驅動程式不支援JRE1.7,請使用支援JDBC4.0的sqljdbc4.jar的類庫”的問題。因為jdk預設地選擇了sqljdbc.jar(前面我已經提到,只留下sqljdbc4.jar)。

9、使用Eclipse測試連線SQL Server 2008資料庫

1、開啟SQL Server 2008,在其中新建資料庫 Test,然後退出SQL Server 2008。

2、執行Eclipse,新建一個Java Project 名為 Test。

3、右單擊src,依次選擇 Build Path → Configure Build Path,在開啟的視窗的右邊選擇 Libraries標籤,然後單擊 Add External JARs,找到剛才下載的sqljdbc4.jar 檔案並開啟,然後單擊 OK 完成構建路徑的配置。
JAR

接下來進行測試!最後一步啦!
在Test中新建包pkg,在pkg中新建一個類Main,在其中輸入程式碼如下:

import java.sql.*;

public class Main {

    public static void main(String[] args)

    {

        String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

        String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=Test";

        String userName = "sa";

        String userPwd = "qwerty";

        Connection dbConn = null;

        try

        {

            Class.forName(driverName);

            dbConn = DriverManager.getConnection(dbURL, userName, userPwd);

            System.out.println("連線資料庫成功");

        }

        catch (Exception e)

        {

            e.printStackTrace();

            System.out.print("連線失敗");

        }

    }

}

溫馨提示:如果要對資料庫中的某個表進行操作,需要像這樣子做:String sql = “SELECT* FROM [資料庫名].[dbo].[表名] where xxx “; 例如String sql = “SELECT* FROM [metro].[dbo].[4] wherexxx” 。注意,中括號是必要的,不能去掉。

成功

最後執行,如果出現連線成功就說明大功告成了,可以開始你的資料庫開發之旅了!!