java通過JDBC鏈接SQLServer2012

下面請一字一句地看,一遍就設置成功,比你設置幾十遍失敗,費時會少得多。

 

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

http://blog.163.com/jackie_howe/blog/static/19949134720122261121214/

 

當你保證SQL Server 2012是採用SQL Server身份驗證方式後,開始如下配置:

一、因爲SQL Server 2012裝好後,默認協議是沒有開啓的,所以要打開SQL Server配置管理器中開啓:

1、安裝好SQL Server 2012後,運行 開始  所有程序  Microsoft SQL Server 2012  配置工具 →SQL Server配置管理器,如下圖1所示:


圖1

2、打開的窗口如下圖所示。在左邊欄找到 SQL Server網絡配置選項,點開它的小箭頭,會看到“【你的數據庫名】的協議” (圖中是ERIC2012的協議),選中它,看右邊欄。如下圖2所示:

圖2

(1)如果Named Pipes 未啓用,則右鍵→啓用

(2)右鍵單擊 TCP/IP,選擇 啓用

(3)雙擊TCP/IP(右鍵→屬性),在彈出的窗口中選擇 “IP地址” 選項卡,將IP1和IP10的【IP地址】設爲127.0.0.1,並將所有【IPx】的【已啓用】設爲是。接着,拖動下拉條到最下方,將 IPAll 中的【TCP端口】設成 【1433】,其餘不變。如下圖3和圖4所示:

圖3

圖4

3、重新啓動計算機。

4、接下來使用telnet命令測試1433端口是否打開。首先要保證telnet服務開啓。開啓win7 telnet的方法在這裏:

http://blog.163.com/jackie_howe/blog/static/199491347201251723939691/

 

5、完成上一步後。開始菜單  運行cmd  輸入:telnet 127.0.0.1 1433,(注意telnet與127之間有空格,1與1433之間有空格)。如下圖:

圖5

6、若提示“不能打開到主機的連接,在端口 1433: 連接失敗”,則說明1433端口沒有打開,需要重新進行以上配置。若連接成功,顯示如圖6所示:

簡單來說就是什麼都沒有顯示           圖6

 

二、環境變量CLASSPATH配置:

1、下載Microsoft JDBC Driver 4.0 for SQL Server

在這裏下載:http://www.microsoft.com/zh-cn/download/details.aspx?id=11774

4.0版本支持的 SQL Server有:

Microsoft®SQL Server® 2012

Microsoft®SQL Server® 2008 R2

Microsoft®SQL Server® 2008

Microsoft®SQL Server® 2005

Microsoft®SQL Azure

 

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

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

在D盤新建一個文件夾,命名爲sqljdbc4,將sqljdbc4.jar複製一個進去。

圖7

2、右擊 我的電腦  屬性  高級系統設置(高級)  環境變量,在系統變量中雙擊CLASSPATH變量(或選中CLASSPATH後  編輯),在最後面追加 “;D:\sqljdbc4 \sqljdbc4.jar” (注意最前面有個 ; )若不存在CLASSPATH,就新建CLASSPATH變量,並且將其值設爲“D:\sqljdbc4 \sqljdbc4.jar”。如圖8所示:

圖8

3、連續點擊 確定 以退出環境變量配置。

4、接下來的工作非常重要(因爲沒做我糾結了幾天沒成功)!!

有幾個地方需要注意:

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

 

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

 

 最好是,只要是jre文件夾,都複製一個sqljdbc4.jar到jre7\lib\ext裏去!!

 

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

 

(4)如果是使用Tomcat做服務器,那麼我們需要將sqljdbc4.jar類庫文件拷貝到D:\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)。

 

三、使用Eclipse測試連接SQL Server 2012數據庫:

1、打開SQL Server 2012,在其中新建數據庫 Test,然後退出SQL Server 2012。

2、運行Eclipse,新建一個Java Project 名爲 Test。

3、右單擊src,依次選擇 Build Path  Configure Build Path,在打開的窗口的右邊選擇 Libraries標籤,然後單擊 Add External JARs,找到 sqljdbc4.jar 文件並打開,然後單擊 OK 完成構建路徑的配置。如圖9(我是漢化版的):

圖9

測試代碼如下:

package experiment2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class SQLtest 
{

	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="123456";
  		
  		Connection dbConn = null;
  		Statement sm = null;
  		try
		{
  		

		   Class.forName(driverName);		//1加載驅動:作用是把需要的驅動加入內存
		  
		   //2得到連接(指定連接到哪個數據源,用戶名和密碼),如果在配置數據源的時候選擇的是WIndowsNT
		   //驗證,則不需要用戶名和密碼
		   dbConn=DriverManager.getConnection(dbURL,userName,userPwd);

		   System.out.println("連接數據庫成功");
		   
		   //3創建statement或者preparedstatement
		   //Statement 主要用於發送sql語句
		   sm = dbConn.createStatement();
		   
		   //4.執行
		}

  		catch(Exception e)

  		{

  			e.printStackTrace();

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

  		}    
  		finally
  		{
  			//關閉資源
  			//關閉資源順序 誰先打開誰後關閉
  			try {
				//爲了程序的健壯性
  				if(sm!=null)
  				{
  					sm.close();
  				}
  				if(dbConn!=null)
  				{
  					dbConn.close();
  				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
  		}
	}

}

 

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

 

5、點擊右鍵,選擇run as——>Java Application, 控制檯出現下圖則連接成功!


連接成功顯示如下


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章