新聞中心
在如今的信息時(shí)代,數(shù)據(jù)已經(jīng)成為了最為重要的資源之一,數(shù)據(jù)庫(kù)作為數(shù)據(jù)存儲(chǔ)和管理的重要工具,在各類(lèi)應(yīng)用系統(tǒng)中都扮演著不可替代的角色。然而隨著應(yīng)用規(guī)模不斷擴(kuò)大,訪(fǎng)問(wèn)量增長(zhǎng)迅猛,數(shù)據(jù)庫(kù)的性能問(wèn)題已成為制約企業(yè)業(yè)務(wù)高效運(yùn)轉(zhuǎn)的關(guān)鍵瓶頸。而創(chuàng)建一個(gè)高效的數(shù)據(jù)庫(kù)連接類(lèi)是解決此類(lèi)問(wèn)題的首要步驟。

一、數(shù)據(jù)庫(kù)連接類(lèi)的作用
數(shù)據(jù)庫(kù)連接類(lèi)是實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的重要工具,它主要負(fù)責(zé)建立應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)之間的連接,從而實(shí)現(xiàn)數(shù)據(jù)的讀寫(xiě)、修改、刪除等操作。數(shù)據(jù)庫(kù)連接類(lèi)不僅僅負(fù)責(zé)簡(jiǎn)單的連接操作,還需要具備一定的安全性、可靠性和高效性。
二、數(shù)據(jù)庫(kù)連接類(lèi)的實(shí)現(xiàn)
要實(shí)現(xiàn)一個(gè)高效的數(shù)據(jù)庫(kù)連接類(lèi),我們需要從以下三個(gè)方面著手:
1. 數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)
在應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)之間進(jìn)行連接的時(shí)候,每次建立連接都需要進(jìn)行一定的開(kāi)銷(xiāo),例如:建立網(wǎng)絡(luò)連接,用戶(hù)認(rèn)證等等。而通過(guò)數(shù)據(jù)庫(kù)連接池,應(yīng)用系統(tǒng)可以預(yù)先建立一部分連接,然后在需要使用時(shí),從連接池中獲取連接對(duì)象,從而避免了重復(fù)建立連接的開(kāi)銷(xiāo),提高了系統(tǒng)的響應(yīng)速度和效率。
2. 數(shù)據(jù)庫(kù)連接安全性的實(shí)現(xiàn)
數(shù)據(jù)庫(kù)連接類(lèi)的另外一個(gè)重要考量就是安全性。對(duì)于大多數(shù)應(yīng)用系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)連接類(lèi)需要提供一定的安全保障措施,例如:用戶(hù)認(rèn)證、受權(quán)訪(fǎng)問(wèn)等。在實(shí)現(xiàn)連接安全性的時(shí)候,通??梢圆捎靡韵路椒ǎ?/p>
(1)使用SSL加密協(xié)議,保護(hù)連接數(shù)據(jù)的安全性。
(2)設(shè)置數(shù)據(jù)庫(kù)連接的用戶(hù)名和密碼,進(jìn)行認(rèn)證授權(quán)。
(3)限制連接IP,防止惡意攻擊。
3. 數(shù)據(jù)庫(kù)連接效率的實(shí)現(xiàn)
數(shù)據(jù)庫(kù)連接類(lèi)的另外一個(gè)重要考量就是效率。對(duì)于大多數(shù)應(yīng)用系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)連接類(lèi)需要提供高效的連接服務(wù),并支持大數(shù)據(jù)量的讀寫(xiě)操作。在實(shí)現(xiàn)連接效率的時(shí)候,通??梢圆捎靡韵路椒ǎ?/p>
(1)設(shè)置連接超時(shí)時(shí)間,對(duì)于一些長(zhǎng)時(shí)間未響應(yīng)的連接進(jìn)行自動(dòng)回收。
(2)對(duì)于一些固定的SQL語(yǔ)句或查詢(xún)條件,采用SQL預(yù)編譯的方式提高查詢(xún)效率。
(3)通過(guò)對(duì)SQL語(yǔ)句進(jìn)行優(yōu)化,避免大數(shù)據(jù)量的掃描操作,提高查詢(xún)速度。
三、數(shù)據(jù)庫(kù)連接類(lèi)的設(shè)計(jì)原則
在設(shè)計(jì)數(shù)據(jù)庫(kù)連接類(lèi)的時(shí)候,我們需要遵循以下原則:
1. 屏蔽數(shù)據(jù)庫(kù)差異性
不同的數(shù)據(jù)庫(kù)提供商提供的數(shù)據(jù)庫(kù)接口是有所不同的,因此在編寫(xiě)數(shù)據(jù)庫(kù)連接類(lèi)的時(shí)候,需要屏蔽這些差異性,使得連接類(lèi)能夠在不同的數(shù)據(jù)庫(kù)系統(tǒng)上運(yùn)行。
2. 實(shí)現(xiàn)單例模式
在實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池的時(shí)候,我們需要保證整個(gè)系統(tǒng)中只存在一個(gè)連接池對(duì)象,這一點(diǎn)可以通過(guò)實(shí)現(xiàn)單例模式來(lái)實(shí)現(xiàn)。
3. 提供連接對(duì)象的復(fù)用性
當(dāng)一個(gè)連接對(duì)象被釋放之后,我們可以通過(guò)連接池機(jī)制將其重新添加到連接池中,以便下一次使用。這樣可以有效地減少重復(fù)創(chuàng)建連接對(duì)象的開(kāi)銷(xiāo)。
4. 支持多線(xiàn)程訪(fǎng)問(wèn)
現(xiàn)代應(yīng)用系統(tǒng)中往往具有大規(guī)模的多線(xiàn)程訪(fǎng)問(wèn)需求,因此我們需要保證數(shù)據(jù)庫(kù)連接類(lèi)的線(xiàn)程安全性,避免出現(xiàn)線(xiàn)程沖突的問(wèn)題。
四、
數(shù)據(jù)庫(kù)連接類(lèi)是開(kāi)發(fā)高效應(yīng)用系統(tǒng)的關(guān)鍵工具之一,通過(guò)使用連接池機(jī)制、實(shí)現(xiàn)連接安全性和效率優(yōu)化等方式,可以提高系統(tǒng)的響應(yīng)速度和性能,從而更好地滿(mǎn)足用戶(hù)的需求。在實(shí)現(xiàn)連接類(lèi)的過(guò)程中,需要遵循屏蔽數(shù)據(jù)庫(kù)差異性、實(shí)現(xiàn)單例模式、提供連接對(duì)象的復(fù)用性和支持多線(xiàn)程訪(fǎng)問(wèn)等原則,以便更好地適應(yīng)系統(tǒng)的需求。
相關(guān)問(wèn)題拓展閱讀:
- Java數(shù)據(jù)庫(kù)連接的建立聯(lián)接
- 如何在MyEclipse中建立連接sql數(shù)據(jù)庫(kù)的類(lèi)
- 如何建立sqlserver 外部數(shù)據(jù)庫(kù)連接
Java數(shù)據(jù)庫(kù)連接的建立聯(lián)接
建議鏈接的五大步驟:
1加載(注冊(cè))數(shù)據(jù)庫(kù)
2 建立鏈接
3 執(zhí)行SQL語(yǔ)句
4 處理結(jié)果集
5 關(guān)閉數(shù)據(jù)庫(kù)
教程:JDBC 入門(mén) 作者:Maydene Fisher 翻譯:comer
你需要做的之一事情是你與想要使用的 DBMS 建立一個(gè)連接。這包含 2 個(gè)步驟:裝載驅(qū)動(dòng)程序并建立連接。
裝載驅(qū)動(dòng)程序
裝載驅(qū)動(dòng)程序只需要非常簡(jiǎn)單的一行代碼。例如,你想要使用 JDBC-ODBC 橋驅(qū)動(dòng)程序,可以用下列代碼裝載它:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
你的驅(qū)動(dòng)程序文檔將告訴你應(yīng)該使用的類(lèi)名。例如, 如果類(lèi)名是 jdbc.DriverXYZ ,你將用代碼以下的代碼裝載驅(qū)晌虛動(dòng)程序:
Class.forName(“jdbc.DriverXYZ”);
你不需要?jiǎng)?chuàng)建一個(gè)驅(qū)動(dòng)程序類(lèi)的實(shí)例并且用 DriverManager 登記它,因?yàn)檎{(diào)用 Class.forName 將自動(dòng)將加載驅(qū)動(dòng)程序類(lèi)。如果你曾自己創(chuàng)建實(shí)例,你將創(chuàng)建一個(gè)不必要的副本,但它不會(huì)帶來(lái)什么壞處。
加載 Driver 類(lèi)后,它們即可用來(lái)與數(shù)據(jù)庫(kù)建立連接。
建立連接
第二步就是用適當(dāng)?shù)尿?qū)動(dòng)激謹(jǐn)團(tuán)程序類(lèi)與 DBMS 建立一個(gè)連接。下列代碼是一般的做法:
Connection con = DriverManager.getConnection(url,”myLogin”,”myPassword”);
這個(gè)步驟也非常簡(jiǎn)單,最難的是怎么提供 url。如果你正在使用 JDBC-ODBC 橋, JDBC URL 將以 jdbc:odbc 開(kāi)始:余下 URL 通常是你的數(shù)據(jù)源名字或數(shù)據(jù)庫(kù)系統(tǒng)。因此,假設(shè)你正在使用 ODBC 存取一個(gè)叫 “Fred” 的 ODBC 數(shù)據(jù)源,你的 JDBC URL 是 jdbc:odbc:Fred。把 “myLogin” 及 “myPassword” 替換為你登陸 DBMS 的用戶(hù)名及口令。如果你登陸數(shù)據(jù)庫(kù)系統(tǒng)的用戶(hù)名為 “Fernanda” 口令為 “J8″,只需下面的 2 行代碼就可以建立一個(gè)連接:
String url = “jdbc:odbc:Fred”;
Connection con = DriverManager.getConnection(url,”Fernanda”,”J8″);
如果你使用的是第三方開(kāi)發(fā)了的 JDBC驅(qū)動(dòng)程序,文檔將告訴你該使用什么 subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如,如果驅(qū)動(dòng)程序開(kāi)發(fā)者注冊(cè)了 acme 作為 subprotocol, JDBC URL 的之一和第二部分將是 jdbc:acme。驅(qū)動(dòng)程序文檔也會(huì)告訴你余下 JDBC URL 的格式。JDBC URL 最后一部分提供了定位數(shù)據(jù)庫(kù)的信息。
如果你裝載的驅(qū)動(dòng)程序識(shí)別了提供給 DriverManager.getConnection 的 JDBC URL ,那個(gè)驅(qū)動(dòng)程序?qū)⒏鶕?jù) JDBC URL 建立一個(gè)到指定 DBMS 的連接。正如名稱(chēng)所示,DriverManager 類(lèi)在幕后為你管理建立連接的所有細(xì)節(jié)。除非你是正在寫(xiě)驅(qū)動(dòng)程序,你可能無(wú)需使用此類(lèi)的其它任何方法,一般程序員需要在此類(lèi)中直接使用的唯一方法是 DriverManager.getConnection。
DriverManager.getConnection 方法返回一個(gè)打開(kāi)的連接,你可以使用此連接創(chuàng)建 JDBC statements 并發(fā)送 SQL 語(yǔ)句到數(shù)據(jù)庫(kù)。在前面的例子里,con 對(duì)象是一個(gè)打開(kāi)的連接,并且我們要在以后的例子里使用它。
設(shè)置表
創(chuàng)建表
首先,我們?cè)谖覀兊氖纠龜?shù)據(jù)庫(kù)創(chuàng)建其中一張表 COFFEES,包含在咖啡店所賣(mài)咖啡的必要的信息,包括咖啡名字,他們的價(jià)格,本星期賣(mài)了多少磅及迄今為止賣(mài)的數(shù)目。
另外,我們應(yīng)該指出的的是 SQL 語(yǔ)句的格式。在 CREATE TABLE 語(yǔ)句中,關(guān)鍵字采用大寫(xiě)字符,并且每個(gè)項(xiàng)目都另起一行。SQL 并沒(méi)有此要求;明橘僅僅是為了更容易閱讀。SQL 標(biāo)準(zhǔn)是不區(qū)分關(guān)鍵詞的大小寫(xiě)的,
然而,引號(hào)里的內(nèi)容是區(qū)分大小寫(xiě)的:在名字”Washington” 里 “W” 必須被大寫(xiě),并且余下的字符必須是小寫(xiě)的。
對(duì)于標(biāo)識(shí),不同的 DBMS 有不同的要求,例如,某些 DBMSs 要求那些列名及表名必須跟創(chuàng)建時(shí)的一樣,有些則沒(méi)有此要求。為安全起見(jiàn),我們?nèi)渴褂么髮?xiě)標(biāo)識(shí)如 COFFEES、SUPPLIERS,因?yàn)槲覀兪悄菢佣x他們的。
到止我們寫(xiě)了創(chuàng)建 COFFEES 表的 SQL 語(yǔ)句,我們?cè)谒饷婕由弦?hào)(使它成為字符串),并且字符串賦值給變量 createTableCoffees,在以后的 JDBC 代碼中我們可以使用此變量。正如看到的,DBMS 并不在意分行,但對(duì) Java 語(yǔ)言來(lái),String 對(duì)象分行是通不過(guò)編譯的。因而,我們可以用加號(hào) (+) 把每一行的串連接。
String createTableCoffees = “CREATE TABLE COFFEES ” +
“(COF_NAME VARCHAR(32),SUP_ID INTEGER,PRICE FLOAT,” +
“SALES INTEGER,TOTAL INTEGER)”;
我們?cè)?CREATE TABLE 語(yǔ)句中使用的數(shù)據(jù)類(lèi)型是通用的 SQL 類(lèi)型(也稱(chēng) JDBC 類(lèi)型)它們?cè)陬?lèi) java.sql.Types 中定義。DBMSs 通常使用這些標(biāo)準(zhǔn)的類(lèi)型,因此,當(dāng)你要嘗試一些 JDBC 應(yīng)用程序時(shí),你可以直接使用 CreateCoffees.java 應(yīng)用程序,它使用了 CREATE TABLE 語(yǔ)句。如果你的 DBMS 使用了它的自己的本地的類(lèi)型名字,我們?yōu)槟愎?yīng)其它的應(yīng)用程序,我們將在后面詳細(xì)解釋。
在運(yùn)用任何應(yīng)用程序前,當(dāng)然,我們將讓你了解 JDBC 的基礎(chǔ)。
創(chuàng)建 JDBC Statements 對(duì)象
Statement 對(duì)象用于把 SQL 語(yǔ)句發(fā)送到 DBMS。你只須簡(jiǎn)單地創(chuàng)建一個(gè) Statement 對(duì)象并且然后執(zhí)行它,使用適當(dāng)?shù)姆椒▓?zhí)行你發(fā)送的 SQL 語(yǔ)句。對(duì) SELECT 語(yǔ)句來(lái)說(shuō),可以使用 executeQuery。要?jiǎng)?chuàng)建或修改表的語(yǔ)句,使用的方法是 executeUpdate。
需要一個(gè)活躍的連接的來(lái)創(chuàng)建 Statement 對(duì)象的實(shí)例。在下面的例子中,我們使用我們的 Connection 對(duì)象 con 創(chuàng)建 Statement 對(duì)象 stmt:
Statement stmt = con.createStatement();
到此 stmt 已經(jīng)存在了,但它還沒(méi)有把 SQL 語(yǔ)句傳遞到 DBMS。我們需要提供 SQL 語(yǔ)句作為參數(shù)提供給我們使用的 Statement 的方法。例如,在下面的代碼段里,我們使用上面例子中的 SQL 語(yǔ)句作為 executeUpdate 的參數(shù):
stmt.executeUpdate(“CREATE TABLE COFFEES ” +
“(COF_NAME VARCHAR(32),SUP_ID INTEGER,PRICE FLOAT,” +
“SALES INTEGER,TOTAL INTEGER)”);
因?yàn)槲覀円呀?jīng)把 SQL 語(yǔ)句賦給了 createTableCoffees 變量,我們可以如下方式書(shū)寫(xiě)代碼:
stmt.executeUpdate(createTableCoffees);
執(zhí)行語(yǔ)句
我們使用 executeUpdate 方法是因?yàn)樵?createTableCoffees 中的 SQL 語(yǔ)句是 DDL (數(shù)據(jù)定義語(yǔ)言)語(yǔ)句。創(chuàng)建表,改變表,刪除表都是 DDL 語(yǔ)句的例子,要用 executeUpdate 方法來(lái)執(zhí)行。你也可以從它的名字里看出,方法 executeUpdate 也被用于執(zhí)行更新表 SQL 語(yǔ)句。實(shí)際上,相對(duì)于創(chuàng)建表來(lái)說(shuō),executeUpdate 用于更新表的時(shí)間更多,因?yàn)楸碇恍枰獎(jiǎng)?chuàng)建一次,但經(jīng)常被更新。
被使用最多的執(zhí)行 SQL 語(yǔ)句的方法是 executeQuery。這個(gè)方法被用來(lái)執(zhí)行 SELECT 語(yǔ)句,它幾乎是使用最多的 SQL 語(yǔ)句。馬上你將看到如何使用這個(gè)方法。
在表中輸入數(shù)據(jù)
我們已經(jīng)顯示了如何通過(guò)指定列名、數(shù)據(jù)類(lèi)型來(lái)創(chuàng)建表 COFFEES,但是這僅僅建立表的結(jié)構(gòu)。表還沒(méi)有任何數(shù)據(jù)。我們將次輸入一行數(shù)據(jù)到表中,提供每列的信息,注意插入的數(shù)據(jù)顯示順序跟表創(chuàng)建時(shí)候是一樣的,既缺省順序。
下列代碼插入一個(gè)行數(shù)據(jù),COF_NAME 的值為 Colombian,SUP_ID 為 101,PRICE 為 7.99,SALES 0,TOTAL 0。就象創(chuàng)建 COFFEES 表一樣,我們創(chuàng)建一 Statement 對(duì)象,并執(zhí)行 executeUpdate 方法。
因?yàn)?SQL 語(yǔ)句一行顯示不下,因此我們把它分為兩行,并用加號(hào) (+) 相連。特別要注意的是,在 COFFEES 和 VALUES 之間要有空格。這個(gè)空格必須在引號(hào)之內(nèi)并且要在 COFFEES 跟 VALUES 之間;沒(méi)有這個(gè)空格,SQL 語(yǔ)句將被錯(cuò)誤地被讀作為 “INSERT INTO COFFEESVALUES …”,并且 DBMS 將尋找表 COFFEESVALUES。還要注意的是在 coffee name 上我們使用了單引號(hào)。
Statement stmt = con.createStatement();
stmt.executeUpdate(
“INSERT INTO COFFEES ” +
“VALUES (‘Colombian’,101,7.99,0,0)”);
下面的代碼把第二行插入到表 COFFEES 中。我們可以在使用 Statement 對(duì)象而無(wú)須為每次執(zhí)行創(chuàng)建一個(gè)新的。
stmt.executeUpdate(“INSERT INTO COFFEES ” +
“VALUES (‘French_Roast’,49,8.99,0,0)”);
剩下行的數(shù)據(jù)如下:
stmt.executeUpdate(“INSERT INTO COFFEES ” +
“VALUES (‘Espresso’,150,9.99,0,0)”);
stmt.executeUpdate(“INSERT INTO COFFEES ” +
“VALUES (‘Colombian_Decaf’,101,8.99,0,0)”);
stmt.executeUpdate(“INSERT INTO COFFEES ” +
“VALUES (‘French_Roast_Decaf’,49,9.99,0,0)”);
從表中取得數(shù)據(jù)
既然表 COFFEES 中已經(jīng)有數(shù)據(jù)了,我們就可以寫(xiě)一個(gè) SELECT 語(yǔ)句來(lái)取得這些值。下面的 SQL 語(yǔ)句中星號(hào) (*) 表示選擇所有的列。因?yàn)闆](méi)有用 WHERE 子句來(lái)限制所選的行,因此下面的 SQL 語(yǔ)句選擇的是整個(gè)表。
SELECT * FROM COFFEES
結(jié)果是整個(gè)表的數(shù)據(jù),如下:
COF_NAME SUP_ID PRICE SALES TOTAL
Colombian 101 7.99 0 0
French_Roast 49 8.99 0 0
Espresso 150 9.99 0 0
Colombian_Decaf 101 8.99 0 0
French_Roast_Decaf 49 9.99 0 0
如果你直接在數(shù)據(jù)庫(kù)系統(tǒng)里輸入 SQL 查詢(xún)語(yǔ)句,你將在你的終端上看到如上的結(jié)果。當(dāng)我們通過(guò)一個(gè) Java 應(yīng)用程序存取一個(gè)數(shù)據(jù)庫(kù)時(shí),正如我們馬上要做的一樣,我們需要檢索結(jié)果以便我們能使用他們。你將在下一節(jié)看到如何實(shí)現(xiàn)。
這是 SELECT 語(yǔ)句的另一個(gè)例子,這將得到咖啡及其各自每磅單價(jià)的列表。
SELECT COF_NAME,PRICE FROM COFFEES
查詢(xún)的結(jié)果集將具有如下形式:
COF_NAME PRICE
Colombian 7.99
French_Roast 8.99
Espresso 9.99
Colombian_Decaf 8.99
French_Roast_Decaf 9.99
上面 SELECT 語(yǔ)句取得了所有咖啡的名字及價(jià)格。而下面的 SELECT 語(yǔ)句限制那些每磅價(jià)格低于 $9.00 的咖啡才被選擇。
SELECT COF_NAME,PRICE
FROM COFFEES
WHERE PRICE
結(jié)果集將具有如下形式:
COF_NAME PRICE
Colombian 7.99
French_Roast 8.99
Colombian Decaf 8.99
JDBC 入門(mén) — 開(kāi)始
你需要做的之一事情是你要正確的安裝。這包含下列幾個(gè)步驟:
在你的計(jì)算機(jī)上安裝 Java 和 JDBC
Java 數(shù)據(jù)庫(kù)連接 (JDBC) 是一個(gè)標(biāo)準(zhǔn) SQL(Structured Query Language,結(jié)構(gòu)化查詢(xún)語(yǔ)言)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)接口,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪(fǎng)問(wèn)。JDBC(Java DataBaseConnection,Java 數(shù)據(jù)庫(kù)連接) 也提供一種基準(zhǔn),據(jù)此可以構(gòu)建更高級(jí)的工具和接口。 JDK(Java Development Kit,Java 開(kāi)發(fā)工具包)軟件捆綁包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,開(kāi)放式數(shù)據(jù)庫(kù)連接)橋。這些包也可獨(dú)立得到,以跟 JDK 1.0 一起使用。應(yīng)該注意的是,本文的示例使用了 JDBC 2.0 接口,需要 JDK 2.0 來(lái)運(yùn)行,不能在 JDK 1.1 下運(yùn)行。
你的驅(qū)動(dòng)程序應(yīng)該有安裝方法。為特定的 DBMSs 寫(xiě)的 JDBC 驅(qū)動(dòng)程序安裝時(shí)只要拷貝到你的計(jì)算機(jī)上就可以了。并不需要特殊的配置。
如果你下載的是 Solaris 或 Windows JDK1.1 版本,橋作為包 sun.jdbc.odbc 與 JDK 一起自動(dòng)安裝。有關(guān)安裝和配置 ODBC 的信息,請(qǐng)咨詢(xún) ODBC 驅(qū)動(dòng)程序廠(chǎng)商。橋無(wú)須特殊配置。有關(guān)客戶(hù)機(jī)安裝和配置信息,請(qǐng)咨詢(xún)數(shù)據(jù)庫(kù)廠(chǎng)商。
如果需要,安裝數(shù)據(jù)庫(kù)系統(tǒng)
如果你不能確認(rèn)是否安裝了數(shù)據(jù)庫(kù)系統(tǒng),你需要按照供應(yīng)商的要求安裝數(shù)據(jù)庫(kù)。大多數(shù)用戶(hù)都已經(jīng)安裝了數(shù)據(jù)庫(kù),可繼續(xù)使用他們安裝好的數(shù)據(jù)庫(kù)。
配置數(shù)據(jù)庫(kù)
我們假設(shè)數(shù)據(jù)庫(kù) COFFEEBREAK 已經(jīng)存在。(創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)并不困難,但需要一定的權(quán)限并通常是由數(shù)據(jù)庫(kù)管理員來(lái)做)你還需要在此數(shù)據(jù)庫(kù)里創(chuàng)建本教程作為例子使用的表。我們有意限制表的大小跟及數(shù)目,以便于管理。
假設(shè)我們的數(shù)據(jù)庫(kù)是在一個(gè)咖啡館里使用, 咖啡豆按磅賣(mài),而咖啡則以杯為單位。為了簡(jiǎn)單起見(jiàn),還假定經(jīng)營(yíng)者只需要 2 張表,分別存放不同種類(lèi)的咖啡及咖啡供應(yīng)商的有關(guān)信息。
首先我們演示怎么打開(kāi)一個(gè) DBMS 連接, 及 JDBC 是怎么發(fā)送 SQL 語(yǔ)句到你的 DBMS。通過(guò)這些代碼,我們將表明使用 JDBC 傳遞 SQL 語(yǔ)句到你的 DBMS 并處理返回的結(jié)果是非常簡(jiǎn)單的。
所有的代碼在主要的幾個(gè) DBMS 產(chǎn)品做了測(cè)試。然而,如果你使用 JDBC-ODBC 橋來(lái)連接舊版本 ODBC 驅(qū)動(dòng)程序時(shí),可能會(huì)遇到一些兼容性問(wèn)題。
如何在MyEclipse中建立連接sql數(shù)據(jù)庫(kù)的類(lèi)
首搏殲孝先我們要強(qiáng)調(diào)的是,居然大家是建立一個(gè)鏈接SQL數(shù)據(jù)庫(kù)的那么我們?cè)诮⑦@個(gè)鏈接數(shù)據(jù)庫(kù)的類(lèi)的同時(shí)我們必須要做的事打開(kāi)我們的SQL數(shù)據(jù)庫(kù)以便待會(huì)基稿建立完成之后進(jìn)行測(cè)試。
那么我們的之一步就是先打開(kāi)我么的開(kāi)發(fā)工具,(這里我用的是MyEclipse10.0)當(dāng)然了我們改伏的其它版本也是可以的!
如何建立sqlserver 外部數(shù)據(jù)庫(kù)連接
首先你說(shuō)的外部數(shù)據(jù)庫(kù)是指的跨服務(wù)器還是在同一巖激個(gè)服務(wù)器上;
如果在同一臺(tái)服務(wù)上的兩個(gè)庫(kù)的話(huà),直接使用庫(kù)名.表名直接訪(fǎng)問(wèn),升悉如果是在不同服務(wù)器上的話(huà),需要建立服務(wù)器連接:
exec sp_addlinkedserver
–鏈接服務(wù)粗笑襪名稱(chēng)
@server = ‘UPDateLink’,
–產(chǎn)品名稱(chēng)
@srvproduct = ”,
–訪(fǎng)問(wèn)接口
@provider = ‘SQLOLEDB’,
–數(shù)據(jù)源
@datasrc = ‘200.200.200.251’
declare @LocalUser varchar(20),@ServerUser varchar(20),@SeverPSW varchar(20)
Set @LocalUser = ‘sa’
Set @ServerUser = ‘root’
Set @SeverPSW = ‘617114’
exec sp_addlinkedsrvlogin UPDateLink,False,@LocalUser,@ServerUser,@SeverPSW
Windows Vista 和 Windows Server 2023 以及更高版本
以下過(guò)程通過(guò)使用具有高級(jí)安全 Microsoft 管理控制臺(tái) (MMC) 管理單元的 Windows 防火墻來(lái)配置該 Windows 防火墻。從笑埋 Windows Vista 和 Windows Server 2023 開(kāi)始提供此管理單元。高級(jí)安全 Windows 防火墻僅配置當(dāng)前配置文件。有關(guān)高級(jí)安全 Windows 防火墻的詳細(xì)信息,請(qǐng)參閱配置 Windows 防火墻以允許 SQL Server 訪(fǎng)問(wèn)。
打開(kāi) Windows 防火墻的端口以進(jìn)行 TCP 訪(fǎng)問(wèn)
在“開(kāi)始”菜單上,單擊“運(yùn)行”,鍵入 WF.msc,然后單擊“確定”。
在“高級(jí)安全 Windows 防火墻”的左窗格中,右鍵單擊“入站規(guī)則”,然后在操作窗格中單擊“新建規(guī)則”。
在“規(guī)則類(lèi)型”對(duì)話(huà)框中,選擇“端口”,然后單擊“下一步”。
在“協(xié)議和端口”對(duì)話(huà)框中,選擇 TCP。選擇“特定本地端口”,然后鍵入數(shù)據(jù)庫(kù)引擎實(shí)例的端口號(hào),例如默認(rèn)實(shí)例的端口號(hào) 1433。單擊“下一步”。
在“操作”對(duì)話(huà)框中,選擇“允許連接”,然后單擊“下一步”。
在“配置文件”對(duì)話(huà)框中,選擇在您想要連接到數(shù)據(jù)庫(kù)引擎時(shí)描述計(jì)算機(jī)連接環(huán)境的任何配置文件,然后單擊“下一步”。
在“名稱(chēng)”對(duì)話(huà)框中,輸入此規(guī)則的名稱(chēng)和說(shuō)明,再單擊“完成”。
在使用動(dòng)態(tài)端口時(shí)打開(kāi)對(duì) SQL Server 的訪(fǎng)問(wèn)
在“開(kāi)始”菜單上,單擊“運(yùn)行”,鍵入 WF.msc,然后單擊“確定”。
在“高級(jí)安全 Windows 防火墻”的左窗格中,右鍵單擊“入站規(guī)則”,然后在操作窗格中單擊“新建規(guī)則”。
在“規(guī)則類(lèi)型”對(duì)話(huà)框中,選擇“程序碰搜螞”,然后單擊“下一步”。
在“程序”對(duì)話(huà)框中,選擇“此程序路徑”。單擊“瀏覽”,導(dǎo)航到要通過(guò)防火墻訪(fǎng)問(wèn)的 SQL Server 實(shí)例,再單擊“打開(kāi)”。默認(rèn)情況下,SQL Server 位于 C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\Sqlservr.exe。單擊“下一步”。
在“操作”對(duì)話(huà)框中,選擇“允許連接”,然后單擊“下一步”。
在“配置文件”對(duì)話(huà)框中,選擇在您想要連接到數(shù)據(jù)庫(kù)漏純引擎時(shí)描述計(jì)算機(jī)連接環(huán)境的任何配置文件,然后單擊“下一步”。
在“名稱(chēng)”對(duì)話(huà)框中,輸入此規(guī)則的名稱(chēng)和說(shuō)明,再單擊“完成”。
網(wǎng)絡(luò)查詢(xún)解決方案:
Step 1: 在服務(wù)器圖標(biāo)上單擊右鍵,選擇property,然后選connection,把a(bǔ)llow remote connection選上,這一步的目的是讓數(shù)據(jù)庫(kù)允許遠(yuǎn)程連接。
Step 2: 在數(shù)據(jù)庫(kù)服務(wù)器圖標(biāo)上,展開(kāi)目錄,找到Security下的Logins子目錄樹(shù),設(shè)置SA賬戶(hù)的屬性,改password,在status欄里,login選上enable。這一步的目的是,允許遠(yuǎn)程客戶(hù)端使用sa用戶(hù)鄧肯,sa是system administrator的縮寫(xiě),擁有數(shù)據(jù)庫(kù)更高管理權(quán)限,默認(rèn)狀態(tài)下是禁用的。
Step3:在數(shù)據(jù)庫(kù)服務(wù)器圖標(biāo)上右鍵,打開(kāi)Facets選項(xiàng)把RemoteDacEnabled的value改成true。這一步的目的是允許建立遠(yuǎn)程專(zhuān)用管理員連接,此種連接擁有更高權(quán)限,即使無(wú)法建立標(biāo)準(zhǔn)連接,也可以建立DAC連接。
Step4:開(kāi)啟服務(wù),打開(kāi)SQL Server Configuration Tool,打開(kāi)網(wǎng)絡(luò)配置,選擇TCP/IP協(xié)議,點(diǎn)開(kāi)屬性,IP地址填數(shù)據(jù)庫(kù)所在服務(wù)器的IP地址,如果是本地服務(wù)器,填127.0.0.1。
exec sp_addlinkedserver ‘l_lnk ‘, ‘ ‘, ‘拍顫SQLOLEDB ‘, ‘192.168.0.1 ‘
GO
exec sp_addlinkedsrvlogin ‘l_lnk ‘, ‘false ‘,null, ‘reader’純搜, ‘reader’襲褲敗
GO
關(guān)于如何創(chuàng)建數(shù)據(jù)庫(kù)連接類(lèi)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站設(shè)計(jì)制作選創(chuàng)新互聯(lián),專(zhuān)業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專(zhuān)注成都高端網(wǎng)站建設(shè)定制開(kāi)發(fā)服務(wù),為客戶(hù)提供專(zhuān)業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁(yè)設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開(kāi)發(fā),營(yíng)銷(xiāo)網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。
本文標(biāo)題:打造高效數(shù)據(jù)庫(kù):創(chuàng)建數(shù)據(jù)庫(kù)連接類(lèi)的首要步驟 (如何創(chuàng)建數(shù)據(jù)庫(kù)連接類(lèi))
URL分享:http://m.fisionsoft.com.cn/article/cojcihd.html


咨詢(xún)
建站咨詢(xún)
