資料庫建立連接
『壹』 簡述mysql建立連接過程
在以前不論是使用SQLyog MySQL GUI或是phpMyAdmin訪問資料庫,第一步一定是輸入訪問資料庫的賬號與密碼,當然Dreamweaver也不例外。在Dreamweaver中,我們通過建立 【MySQL聯機】告訴Dreamweaver連接的MySQL資料庫地址、名稱,以及訪問的賬號和密碼。
在一個網站中,我們只需對一個資料庫建立一次MySQL連接。通常網路上的主機空間也只支持訪問一個資料庫。例如虛擬主機,最基本的方案是搭配1個MySQL資料庫。
在【文件】面板中打開index.php,接著選擇【應用程序】→【資料庫】面板,單擊【+】按鈕後選擇【MySQL連接】。
建立MYSQL連接
在建立資料庫連接前,我們必須設置好圖6-5中的前面3個選項,如果依照書中敘述設置好,那麼基本上便不會有問題。當然必須至少打開一個網頁,否則會有無法選擇的情況發生。
未打開頁面,選項均無法選擇
彈出如圖6-7所示的窗口,請依照其下面的說明進行設置。可以單擊【測試】按鈕測試是否有問題,單擊【確定】按鈕後就可以在【應用程序】→【資料庫】面板中看到所建立的資料庫連接。我們可以操作這個樹狀結構(見圖6-8)檢查連接的資料庫、數據表與欄位名稱及屬性等。也可以打開phpMyAdmin來檢查資料庫結構,並與面板內的信息對比。欄位與功能說明。
建立連接
資料庫內的數據表、欄位和屬性
欄位與功能說明
字 段
說 明
連接名稱
依個人喜好自由輸入
MySQL伺服器
MySQL伺服器的位置,一般設置為localhost,除非所要存取的MySQL資料庫不在網頁所在的主機上,而且該MySQL資料庫也提供對外的連接
用戶名
訪問MySQL資料庫的用戶名稱
密碼
訪問MySQL資料庫的用戶密碼
資料庫
選擇所要建立連接的資料庫名稱,可以單擊【選取】按鈕瀏覽MySQL伺服器上的所有資料庫。我們選擇剛導入的範例資料庫database
在建立完成MySQL連接後,在【文件】面板中會看到Dreamwaver自動建立了Connections文件夾,在該文件夾下有一個與前面所建立的MySQL連接名稱相同的文件。
Connections文件夾
Connections文件夾是Dreamweaver用來存放MySQL連接設置文件的文件夾。
打開該文件並使用【代碼】視圖,可以看到有關連接資料庫的設置。
資料庫連接設置
在這個文件中定義了與MySQL伺服器的連接(mysql_pconnect函數),包括以下內容。
$hostname:MySQL伺服器的地址。
$database:連接資料庫的名稱。
$username:用戶名稱。
$password:用戶密碼。
定義的值與我們前面在圖形界面所設置的值是對應的,然後利用函數mysql_pconnect與資料庫連接。連接後才能對資料庫進行查詢、新增、修改或刪除的操作。
如果在網站製作完成後將文件上傳至網路上的主機空間時發現,網路上的MySQL伺服器訪問的用戶名、密碼等方面與本機設置有所不同,可以直接修改位於Connection文件夾下的db_conn.php文件。但還是建議直接在本機配合網路主機上的環境來設置。例如,你擁有虛擬主機所提供的MySQL資料庫名稱為xu354jp6,但在本機卻要命名為Charles,雖然可能會好看些,但到時候就會多一個麻煩了。
對於如何將本機已經完成的網站移植到網路上的空間,將在附錄中有詳細的介紹。
總之,在建立好資料庫連接後,除非要連接MySQL資料庫里的另一個資料庫,否則不需要再做這個步驟了。
『貳』 資料庫怎麼連接,
樓上說的是java那邊的 我來說說C這邊的吧
我不知道你對代碼的了解度程是什麼 也太籠統了 不好說 我整理了下 vs基本現在用的就這幾種
資料庫 只要載入到SQLSERVER里就行了
程序鏈接資料庫的話 方法很多
1: webconfig文件
<configuration>
<connectionStrings>
<add name="ConnectionString1" connectionString="Data Source=LEUU\LEUU;Initial Catalog=學生成績管理;Integrated Security =True" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
name是連接字元串的名字
connectionString 是他的值。。
Data Source表示數據源,也就是sql服務的路徑和名稱,一般為IP地址
user id 是帳號, p.....。。
Initial Catalog表示資料庫名稱
Integrated Security=True表示打開數庫鏈接時集成windows身份驗證
1號方法 需要使用下面2號方法來調用 只不過可以在代碼中不用定義configuration的連接語句
不過 必需new
--------------------------------------------------------------------------------------------------
2 代碼中直接調用 SqlConnection類連接資料庫
(其實這樣不好 如果忘了關conn 別的地方就沒法再打開 還不抱錯 囧 不過你懂的調用資料庫次數少話 小程序這么寫簡單)
如果連接微軟的Sql Server7.0及以後版本資料庫,使用SqlConnection類建立連接效率較高。而連接其它支持ODBC的資料庫,必須使用OleDbConnection類。使用SqlConnection類必須引用如下命名空間:
Using System.Data;
using System.Data.SqlClient;
使用OleDbConnection類必須引用如下命名空間:
Using System.Data;
using System.Data.OleDb;
使用SqlConnection類建立連接的例子如下:
string txtConn="DATABASE=Northwind;SERVER=localhost;UID=sa;PWD=;";
SqlConnection conn=new SqlConnection(txtConn);//建立連接
其中DATABASE為資料庫名稱,這里為Northwind,必須安裝微軟Sql Server資料庫系統,並安裝自帶的資料庫例子Northwind,才能使用。UID為用戶名,PWD為密碼,Northwind資料庫安裝後的用戶名為sa,密碼為空。SERVER為所使用的資料庫伺服器,這里資料庫伺服器和資料庫應用程序在同一台計算機中,因此為localhost,中文意義是本地主機。
使用OleDbConnection類建立連接的例子如下:
string txtConn=//將作為OleDbConnection類對象conn的屬性ConnectionString的值
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\\VC#\\studentI.mdb";
OleDbConnection conn=new OleDbConnection(txtConn);//建立資料庫連接
Provider為所使用的資料庫驅動程序,DataSource為資料庫的位置。也可以使用Visual Studio.Net建立連接,見例子8_10B。方法Open()和Close(),打開和關閉資料庫連接。
-----------------------------------------------------------------------------------------
3 所謂的dbhelper類(以前自己寫的 可以多楚調用 高手別笑哈 這是一個單獨的cs文件 調用的話 new就行)
private static SqlConnection conn;
public static SqlConnection Conn
{
get
{
string sqlconn = ConfigurationManager.ConnectionStrings["Sqlcon"].ConnectionString;
if (conn == null)
{
conn = new SqlConnection(sqlconn);
conn.Open();
}
else if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
else if (conn.State == System.Data.ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return conn;
}
}
public static SqlDataReader GetProcReader(string sqlproc)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
SqlDataReader reader = commd.ExecuteReader();
return reader;
}
public static SqlDataReader GetProcReader(string sqlproc, params SqlParameter[] para)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
commd.Parameters.AddRange(para);
SqlDataReader reader = commd.ExecuteReader();
return reader;
}
public static int GetProcCommand(string sqlproc)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
int num = commd.ExecuteNonQuery();
return num;
}
public static int GetProcCommand(string sqlproc, params SqlParameter[] para)
{
SqlCommand commd = new SqlCommand();
commd.Connection = Conn;
commd.CommandType = CommandType.StoredProcere;
commd.CommandText = sqlproc;
commd.Parameters.AddRange(para);
int num = commd.ExecuteNonQuery();
return num;
}
『叄』 如何建立資料庫連接
你可以考慮寫一個簡單的網頁,這個網頁要用到動態腳本,如php,asp,jsp等等然後在後台建立一個資料庫,如果要求功能很簡單的話,就用asp+access,或者php+mysql(這個要用到資料庫空間,但是資料庫管理很方便,可以都是用圖形化界面操作),你必須了解sql資料庫,這樣操作任何資料庫就都不難了,這些都要建立在你必須了解動態腳本的基礎上,這樣你用DW做的表單才能提交到資料庫,其實你還可以讓他將表單數據發到指定郵箱的(這種方法比較簡單,使用DW弄就可以,不必要了解動態腳本)!
『肆』 應用程序如何與資料庫建立連接
首先 程序和數據里連接 需要一個驅動 這個工具別人已經寫好了 你只要拿過來 加到程序內裡面然後容 要和資料庫連接 就要知道 資料庫的伺服器地址 登陸資料庫的用戶名 密碼 使用的是哪個資料庫實例最後就可以連接了原理和登陸網上一個網頁差不多 首先需要一個瀏覽器 比如ie 然後需要知道網址 用戶名 密碼 等等
『伍』 如何將兩個資料庫建立連接
第一步:客戶端查找相關的Hosts文件。
客戶端一開始也不知道主機名對應的IP地址是多回少。故需要把這個答主機名解析成對應的IP地址,如此的話,客戶端才能夠連接到伺服器上。要解析這個主機名的話,可以通過Host文件或者DNS伺服器來完成。
通常情況下,客戶端是先去查詢本機上的Host文件,看看有沒有對應的紀錄。
如果沒有的話,則去尋找網路中存在的DNS伺服器要求解析。
第二步:客戶端聯系伺服器。
當客戶端獲得伺服器的IP地址後,就會跟伺服器進行聯系。
客戶端會把用戶名與密碼發送給伺服器。注意此時客戶端不會把服務名稱告訴給伺服器。因為默認情況下,伺服器上只會安裝一個應用服務。故客戶端只要把用戶名與密碼告訴給伺服器,資料庫伺服器就會允許用戶連接唯一的一個應用服務。
故如果要用戶連接同一台主機上的不同Oracle資料庫服務,則需要資料庫能夠識別客戶端到底需要連接哪個應用服務,也就是說,需要客戶端能夠把應用服務的名稱也傳遞給伺服器。
『陸』 Java資料庫連接的建立連接
Connection 對象代表與資料庫的連接。連接過程包括所執行的 SQL 語句和在該連接上所返回的結果。一個應用程序可與單個資料庫有一個或多個連接,或者可與許多資料庫有連接。
⒈ 打開連接
與資料庫建立連接的標准方法是調用DriverManager.getConnection方法。該方法接受含有某個URL的字元串。DriverManager類(即所謂的JDBC管理層)將嘗試找到可與那個URL所代表的資料庫進行連接的驅動程序。DriverManager類存有已注冊的Driver類的清單。當調用方法getConnection時,它將檢查清單中的每個驅動程序,直到找到可與URL中指定的資料庫進行連接的驅動程序為止。Driver的方法connect使用這個URL來建立實際的連接。
用戶可繞過JDBC管理層直接調用Driver方法。這在以下特殊情況下將很有用:當兩個驅動器可同時連接到資料庫中,而用戶需要明確地選用其中特定的驅動器。但一般情況下,讓DriverManager類處理打開連接這種事將更為簡單。
下述代碼顯示如何打開一個與位於URL"jdbc:odbc:wombat"的資料庫的連接。所用的用戶標識符為"freely",口令為"ec":
String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "freely", "ec");
⒉ 一般用法的URL
由於URL常引起混淆,我們將先對一般URL作簡單說明,然後再討論JDBCURL。URL(統一資源定位符)提供在Internet上定位資源所需的信息。可將它想像為一個地址。URL的第一部份指定了訪問信息所用的協議,後面總是跟著冒號。常用的協議有"ftp"(代表"文件傳輸協議")和"http"(代表"超文本傳輸協議")。如果協議是"file",表示資源是在某個本地文件系統上而非在Internet上(下例用於表示我們所描述的部分;它並非URL的組成部分)。
URL的其餘部份(冒號後面的)給出了數據資源所處位置的有關信息。如果協議是file,則URL的其餘部份是文件的路徑。對於ftp和http協議,URL的其餘部份標識了主機並可選地給出某個更詳盡的地址路徑。例如,以下是JavaSoft主頁的URL。該URL只標識了主機:從該主頁開始瀏覽,就可以進到許多其它的網頁中,其中之一就是JDBC主頁。
⒊ JDBC URL
JDBC URL提供了一種標識資料庫的方法,可以使相應的驅動程序能識別該資料庫並與之建立連接。實際上,驅動程序編程員將決定用什麼JDBC URL來標識特定的驅動程序。用戶不必關心如何來形成JDBC URL;他們只須使用與所用的驅動程序一起提供的URL即可。JDBC的作用是提供某些約定,驅動程序編程員在構造他們的JDBC URL時應該遵循這些約定。
由於JDBC URL要與各種不同的驅動程序一起使用,因此這些約定應非常靈活。首先,它們應允許不同的驅動程序使用不同的方案來命名資料庫。例如,odbc子協議允許(但並不是要求)URL含有屬性值。
其次,JDBC URL應允許驅動程序編程員將一切所需的信息編入其中。這樣就可以讓要與給定資料庫對話的applet打開資料庫連接,而無須要求用戶去做任何系統管理工作。
最後,JDBC URL應允許某種程度的間接性。也就是說,JDBC URL可指向邏輯主機或資料庫名,而這種邏輯主機或資料庫名將由網路命名系統動態地轉換為實際的名稱。這可以使系統管理員不必將特定主機聲明為JDBC名稱的一部份。網路命名服務(例如DNS、NIS和DCE)有多種,而對於使用哪種命名服務並無限制。
JDBC URL的標准語法如下所示。它由三部分組成,各部分間用冒號分隔:
jdbc:<;協議:子協議:子名稱> JDBC URL的三個部分可分解如下:
⑴jdbc協議:JDBC URL中的協議總是jdbc。
⑵<;子協議>;:驅動程序名或資料庫連接機制(這種機制可由一個或多個驅動程序支持)的名稱。子協議名的典型示例是"odbc",該名稱是為用於指定ODBC風格的數據資源名稱的URL專門保留的。例如,為了通過JDBC-ODBC橋來訪問某個資料庫,可以用如下所示的URL:jdbc:odbc:book。本例中,子協議為"odbc",子名稱"book"是本地ODBC數據資源。如果要用網路命名服務(這樣JDBC URL中的資料庫名稱不必是實際名稱),則命名服務可以作為子協議。例如,可用如下所示的URL:jdbc:dcenaming:accounts。本例中,該URL指定了本地DCE命名服務應該將資料庫名稱"accounts"解析為更為具體的可用於連接真實資料庫的名稱。
⑶<;子名稱>;:種標識資料庫的方法。子名稱可以依不同的子協議而變化。它還可以有子名稱的子名稱(含有驅動程序編程員所選的任何內部語法)。使用子名稱的目的是為定位資料庫提供足夠的信息。前例中,因為ODBC將提供其餘部份的信息,因此用"book"就已足夠。然而,位於遠程伺服器上的資料庫需要更多的信息。例如,如果資料庫是通過Internet來訪問的,則在JDBC URL中應將網路地址作為子名稱的一部份包括進去,且必須遵循如下所示的標准URL命名約定://主機名:埠/子協議。
假設"dbnet"是個用於將某個主機連接到Internet上的協議,則JDBC URL應為:jdbc:dbnet://wombat:356/fred。
⒋ "odbc"子協議
子協議odbc是一種特殊情況。它是為用於指定ODBC風格的數據資源名稱的URL而保留的,並具有下列特性:允許在子名稱(數據資源名稱)後面指定任意多個屬性值。odbc子協議的完整語法為:
jdbc:odbc:<;數據資源名稱>;【;<;屬性名>=<;屬性值>;】,因此,以下都是合法的jdbc:odbc名稱:
jdbc:odbc:qeor7
jdbc:odbc:wombat
jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
jdbc:odbc:qeora;UID=kgh;PWD=fooey
⒌ 注??稱以將之用作JDBC URL的子協議名。當DriverManager類將此名稱加到已注冊的驅動程序清單中時,為之保留該名稱的驅動程序應能識別該名稱並與它所標識的資料庫建立連接。例如,odbc是為JDBC-ODBC橋而保留的。假設有個Miracle公司,它可能會將"miracle"注冊為連接到其Miracle DBMS上的JDBC驅動程序的子協議,從而使其他人都無法使用這個名稱。
JavaSoft作為非正式代理負責注冊JDBC子協議名稱。
⒍ 發送SQL語句
連接一旦建立,就可用來向它所涉及的資料庫傳送SQL語句。JDBC對可被發送的SQL語句類型不加任何限制。這就提供了很大的靈活性,即允許使用特定的資料庫語句或甚至於非SQL語句。然而,它要求用戶自己負責確保所涉及的資料庫可以處理所發送的SQL語句,否則將自食其果。例如,如果某個應用程序試圖向不支持儲存程序的DBMS發送儲存程序調用,就會失敗並將拋出異常。JDBC要求驅動程序應至少能提供ANSI SQL-2 Entry Level功能才可算是符合JDBC標准TM的。這意味著用戶至少可信賴這一標准級別的功能。
JDBC提供了三個類,用於向資料庫發送SQL語句。Connection介面中的三個方法可用於創建這些類的實例。下面列出這些類及其創建方法:
⑴Statement:由方法createStatement所創建。Statement對象用於發送簡單的SQL語句。
⑵PreparedStatement:由方法prepareStatement所創建。PreparedStatement對象用於發送帶有一個或多個輸入參數(IN參數)的SQL語句。PreparedStatement擁有一組方法,用於設置IN參數的值。執行語句時,這些IN參數將被送到資料庫中。PreparedStatement的實例擴展了Statement,因此它們都包括了Statement的方法。PreparedStatement對象有可能比Statement對象的效率更高,因為它已被預編譯過並存放在那以供將來使用。
⑶CallableStatement:由方法prepareCall所創建。CallableStatement對象用於執行SQL儲存程序─一組可通過名稱來調用(就象函數的調用那樣)的SQL語句。CallableStatement對象從PreparedStatement中繼承了用於處理IN參數的方法,而且還增加了用於處理OUT參數和INOUT參數的方法。
不過通常來說createStatement方法用於簡單的SQL語句(不帶參數)、prepareStatement方法用於帶一個或多個IN參數的SQL語句或經常被執行的簡單SQL語句,而prepareCall方法用於調用已儲存過程。
⒎ 事務
事務由一個或多個這樣的語句組成:這些語句已被執行、完成並被提交或還原。當調用方法commit或rollback時,當前事務即告就結束,另一個事務隨即開始。預設情況下,新連接將處於自動提交模式。也就是說,當執行完語句後,將自動對那個語句調用commit方法。這種情況下,由於每個語句都是被單獨提交的,因此一個事務只由一個語句組成。如果禁用自動提交模式,事務將要等到commit或rollback方法被顯式調用時才結束,因此它將包括上一次調用commit或rollback方法以來所有執行過的語句。對於第二種情況,事務中的所有語句將作為組來提交或還原。
方法commit使SQL語句對資料庫所做的任何更改成為永久性的,它還將釋放事務持有的全部鎖。而方法rollback將棄去那些更改。有時用戶在另一個更改生效前不想讓此更改生效。這可通過禁用自動提交並將兩個更新組合在一個事務中來達到。如果兩個更新都是成功,則調用commit方法,從而使兩個更新結果成為永久性的;如果其中之一或兩個更新都失敗了,則調用rollback方法,以將值恢復為進行更新之前的值。
大多數JDBC驅動程序都支持事務。事實上,符合JDBC的驅動程序必須支持事務。DatabaseMetaData給出的信息描述DBMS所提供的事務支持水平。
⒏ 事務隔離級別
如果DBMS支持事務處理,它必須有某種途徑來管理兩個事務同時對一個資料庫進行操作時可能發生的沖突。用戶可指定事務隔離級別,以指明DBMS應該花多大精力來解決潛在沖突。例如,當事務更改了某個值而第二個事務卻在該更改被提交或還原前讀取該值時該怎麼辦。
假設第一個事務被還原後,第二個事務所讀取的更改值將是無效的,那麼是否可允許這種沖突?JDBC用戶可用以下代碼來指示DBMS允許在值被提交前讀取該值("dirty讀取"),其中con是當前連接:
con.setTransactionIsolation(TRANSACTION_READ_UNCOMMITTED);
事務隔離級別越高,為避免沖突所花的精力也就越多。Connection介面定義了五級,其中最低級別指定了根本就不支持事務,而最高級別則指定當事務在對某個資料庫進行操作時,任何其它事務不得對那個事務正在讀取的數據進行任何更改。通常,隔離級別越高,應用程序執行的速度也就越慢(由於用於鎖定的資源耗費增加了,而用戶間的並發操作減少了)。在決定採用什麼隔離級別時,開發人員必須在性能需求和數據一致性需求之間進行權衡。當然,實際所能支持的級別取決於所涉及的DBMS的功能。
當創建Connection對象時,其事務隔離級別取決於驅動程序,但通常是所涉及的資料庫的預設值。用戶可通過調用setIsolationLevel方法來更改事務隔離級別。新的級別將在該連接過程的剩餘時間內生效。要想只改變一個事務的事務隔離級別,必須在該事務開始前進行設置,並在該事務結束後進行復位。我們不提倡在事務的中途對事務隔離級別進行更改,因為這將立即觸發commit方法的調用,使在此之前所作的任何更改變成永久性的。
『柒』 如何:創建資料庫連接
必須先創建連接,然後才能連接到資料庫。 可通過在以下對話框中單擊「新建連接」來創建連接: 「數據比較」對話框 「架構比較」對話框 Transact-SQL 編輯器的「連接到伺服器」對話框 數據生成器的「為目標資料庫生成數據」對話框 資料庫單元測試的「資料庫測試配置」對話框 還可以使用「伺服器資源管理器」來添加連接。 有關更多信息,請參見 如何:從伺服器資源管理器連接到資料庫。 重要事項 您只能從「伺服器資源管理器」中刪除連接。 主題內容 通過單擊「新建連接」來添加連接 重命名連接 修改連接 刪除連接通過單擊「新建連接」來添加連接 單擊「新建連接」。 隨即出現「連接屬性」對話框。 在「伺服器名稱」中鍵入或單擊要連接的伺服器的名稱。 若要使用 Microsoft Windows 憑據來登錄到伺服器上,請單擊「使用 Windows 身份驗證」。 若要使用 SQL Server 身份驗證來登錄到伺服器上,請單擊「使用 SQL Server 身份驗證」,然後在「用戶名」和「密碼」中鍵入用戶名和密碼。 在「連接到資料庫」中鍵入或單擊要連接的資料庫的名稱。 (可選)可以單擊「高級」配置高級連接屬性。 (可選)可以單擊「測試連接」驗證是否可以使用指定的連接信息連接到資料庫。 單擊「確定」創建連接。 重命名連接 在「視圖」菜單上,單擊「伺服器資源管理器」。 展開「數據連接」節點,右擊需要重命名的連接,然後單擊「重命名」。 鍵入連接的新名稱,然後按 Enter。 修改連接 在「視圖」菜單上,單擊「伺服器資源管理器」。 展開「數據連接」節點,右擊需要重命名的連接,然後單擊「修改連接」。 隨即出現「修改連接」對話框。 更新連接的信息,然後單擊「確定」。 如果您決定不修改連接,則單擊「取消」放棄更改。 刪除連接 在「視圖」菜單上,單擊「伺服器資源管理器」。 展開「數據連接」節點,右擊需要重命名的連接,然後單擊「刪除」。 在確認對話框中單擊「是」以刪除連接。 安全性 建議不選擇「保存密碼」復選框,將 SQL Server 密碼與連接字元串一起存儲。 客戶反饋
『捌』 JDBC是怎麼和資料庫建立連接的
創建一個以JDBC連接資料庫的程序,包含7個步驟:
1、載入JDBC驅動程序:
在連接資料庫之前,首先要載入想要連接的資料庫的驅動到JVM(Java虛擬機),
這通過java.lang.Class類的靜態方法forName(String className)實現。
例如:
try{
//載入MySql的驅動類
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驅動程序類 ,載入驅動失敗!");
e.printStackTrace() ;
}
成功載入後,會將Driver類的實例注冊到DriverManager類中。
2、提供JDBC連接的URL
•連接URL定義了連接資料庫時的協議、子協議、數據源標識。
•書寫形式:協議:子協議:數據源標識
協議:在JDBC中總是以jdbc開始
子協議:是橋連接的驅動程序或是資料庫管理系統名稱。
數據源標識:標記找到資料庫來源的地址與連接埠。
例如:(MySql的連接URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字元集。如果characterEncoding設置為
gb2312或GBK,本參數必須設置為true 。characterEncoding=gbk:字元編碼方式。
3、創建資料庫的連接
•要連接資料庫,需要向java.sql.DriverManager請求並獲得Connection對象,
該對象就代表一個資料庫的連接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法傳入指定的欲連接的資料庫的路徑、資料庫的用戶名和
密碼來獲得。
例如:
//連接MySql資料庫,用戶名和密碼都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con =
DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("資料庫連接失敗!");
se.printStackTrace() ;
}
4、創建一個Statement
•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3
種類型:
1、執行靜態SQL語句。通常通過Statement實例實現。
2、執行動態SQL語句。通常通過PreparedStatement實例實現。
3、執行資料庫存儲過程。通常通過CallableStatement實例實現。
具體的實現方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;
5、執行SQL語句
Statement介面提供了三種執行SQL語句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):執行查詢資料庫的SQL語句
,返回一個結果集(ResultSet)對象。
2、int executeUpdate(String sqlString):用於執行INSERT、UPDATE或
DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用於執行返回多個結果集、多個更新計數或二者組合的
語句。
具體實現的代碼:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;
6、處理結果
兩種情況:
1、執行更新返回的是本次操作影響到的記錄數。
2、執行查詢返回的結果是一個ResultSet對象。
• ResultSet包含符合SQL語句中條件的所有行,並且它通過一套get方法提供了對這些
行中數據的訪問。
• 使用結果集(ResultSet)對象的訪問方法獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比較高效
}
(列是從左到右編號的,並且從列1開始)
7、關閉JDBC對象
操作完成以後要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲
明順序相反:
1、關閉記錄集
2、關閉聲明
3、關閉連接對象
if(rs != null){ // 關閉記錄集
try{
rs.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(stmt != null){ // 關閉聲明
try{
stmt.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
if(conn != null){ // 關閉連接對象
try{
conn.close() ;
}catch(SQLException e){
e.printStackTrace() ;
}
}
『玖』 Java中如何與資料庫建立連接
導入java.sql包
一、載入要連接資料庫的驅動程序
//Jdbc-Odbc橋 和 Microsoft Access 資料庫
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// SQL Server 驅動程序:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
註:Class.forName()方法將給定的類載入到JVM,如果系統中不存在給定的類,則會引發異常
二、通過驅動程序管理器得到連接實例
Connection conn=null;
//1.
//1.1建立數據源
conn=DriverManager.getConnection("jdbc:odbc:MyDataSource"); //MyDataSource是數據源名稱
//1-2、不建立數據源
conn=DriverManager.getConnection("jdbc:odbc:;Driver=Microsoft Access Driver (*.mdb);DBQ=C:\\VBTest.mdb");
//2.SQL Server
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=mydb","sa","");
註:DriverManager類跟蹤已注冊的驅動程序,通過getConnection(URL)方法, 找到一個能夠連接至URL中指定的資料庫驅動程序
它接收三個參數, 分別表示1 數據源的名稱、類型 2 用戶名(可選) 3 密碼(可選)
三、基於連接對象建立處理器對象
Statement stmt=conn.createStatement();
四、准備sql命令
String sql="select * from Student";
五、執行命令返回結果集
ResultSet rs=stmt.executeQuery(sql);
六、顯示結果集
while(rs.next())//只要後面有記錄
{
//對當前行的所有欄位遍歷
for(int i=1;i<=rs.getMetaData().getColumnCount();i++)
{
System.out.print(rs.getMetaData().getColumnName(i)+": ");//顯示欄位名
System.out.println(rs.getString(i));//顯示欄位當前值
}
System.out.println();
}
七、關閉資源
rs.close(); //關閉記錄集
stmt.close(); //關閉處理器對象
conn.close(); //關閉連接對象
預處理器的應用:
//3.基於連接對象建立預處理器對象
PreparedStatement pstmt=conn.prepareStatement("insert into student values(?,?,?,?)");
//4.給預處理對象的參數賦值
pstmt.setString(1,"8888");
pstmt.setString(2,"nemo");
pstmt.setString(3,"accp");
pstmt.setString(4,"sanxianglu");
//5.執行預處理命令
int i=pstmt.executeUpdate();
System.out.println(i+"條記錄已成功插入!");