JDBC基礎(chǔ)

掌握數(shù)據(jù)庫開發(fā)是java工程師的基本要求慨畸,而JDBC是數(shù)據(jù)庫開發(fā)的基礎(chǔ)占贫,通過JDBC可以實現(xiàn)Java程序?qū)蠖藬?shù)據(jù)庫的訪問。

雖然現(xiàn)在大多使用MyBatis先口,但明白JDBC的工作流程,對初學(xué)者來說還是非常必要的瞳收,學(xué)會之后能夠更快速的上手MyBatis碉京。下面我就介紹一下JDBC的基礎(chǔ)知識。注意:學(xué)習(xí)JDBC需要有Java基礎(chǔ)以及數(shù)據(jù)庫基礎(chǔ)螟深。

總的來說谐宙,使用JDBC的流程大概分為:

1. 裝載驅(qū)動程序
2. 建立與數(shù)據(jù)庫的連接
3. 執(zhí)行SQL語句
4. 獲取執(zhí)行結(jié)果
5. 清理資源

接下來逐步詳細(xì)說明:

1.裝載驅(qū)動程序

說到裝載驅(qū)動程序,就不得不說JDBC中的Driver類界弧、DriverManager類凡蜻。Driver類是一個接口,定義了各個驅(qū)動程序都必須實現(xiàn)的功能垢箕,是驅(qū)動程序的抽象划栓。而DriverManager類是Driver類的管理類。

想要裝載驅(qū)動程序条获,我們就要用Class.forName(DriverName)向DriverManager注冊驅(qū)動程序忠荞。DriverName就是響應(yīng)數(shù)據(jù)庫驅(qū)動的名稱。推薦用maven管理驅(qū)動程序,免去到官網(wǎng)下載的麻煩委煤。例如加載mysql驅(qū)動:

Class.forName(“com.mysql.jdbc.Driver");

2.建立與數(shù)據(jù)庫的連接

想要建立與數(shù)據(jù)庫的連接堂油,就要通過DriverManager類中的getConnection()方法調(diào)用驅(qū)動程序。

getConnection()方法返回的是一個JDBC Connection對象碧绞。Connection對象其實代表的是Java應(yīng)用程序?qū)蠖藬?shù)據(jù)庫的一條物理鏈接府框。基于這條鏈接讥邻,我們可以執(zhí)行SQL語句迫靖。Connection對象常用的方法就是createStatement()方法,這個方法用來創(chuàng)建Statement對象计维。

調(diào)用getConnection()方法需要傳入三個參數(shù)袜香,分別是URL、UserName鲫惶、PassWord蜈首。注意:使用getConnection()可能會拋出異常,所以這里要捕獲異常欠母。

例如:

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/數(shù)據(jù)庫名","root","root");

URL為相應(yīng)數(shù)據(jù)庫的地址欢策,包含協(xié)議、子協(xié)議赏淌、子名稱三部分踩寇,其中自名稱又包括主機、端口六水、數(shù)據(jù)庫名等俺孙。例如:“jdbc:mysql://127.0.0.1:3306/數(shù)據(jù)庫名”。
UserName則是你部署相應(yīng)數(shù)據(jù)庫時設(shè)置的用戶名掷贾,一般都是“root”睛榄。
PassWord就是你部署相應(yīng)數(shù)據(jù)庫時設(shè)置的密碼。

3.執(zhí)行SQL語句

要執(zhí)行SQL語句想帅,首先要用Connection連接創(chuàng)建Statement對象场靴。Statement對象,說到底就是一個SQL容器港准,這個容器可以承載一些SQL語句旨剥。

然后調(diào)用executeQuery()方法或execute()方法執(zhí)行SQL語句。其中浅缸,executeQuery()方法可執(zhí)行查詢操作轨帜,execute()方法更新、添加衩椒、刪除等操作阵谚。執(zhí)行后返回int值或ResultSet對象蚕礼。ResultSet是數(shù)據(jù)庫結(jié)果集的數(shù)據(jù)表。

例如:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select name from user");

4.獲取執(zhí)行結(jié)果

若返回的是ResultSet對象梢什,則要用循環(huán)取出ResultSet對象中的數(shù)據(jù)奠蹬。因為ResultSet對象具有指向其當(dāng)前數(shù)據(jù)行的指針。最初嗡午,指針被置于第一行之前囤躁。next方法可以將指針移動到下一行;使用該方法是會true或false(若沒有下一行則返回false)荔睹,所以可以在while循環(huán)中使用它迭代結(jié)果集狸演。(ResultSet對象的其他常用方法自行搜索其他資料,這里就不贅述了僻他。)

例如:

while(rs.next()){
    System.out.println(rs.getString("name"));
}

5.清理資源

在finally{ }方法中清理資源宵距。
例如:

finally{
    try{
        if(rs != null)
            rs.close();

        if(stmt != null)
            stmt.close();

        if(conn != null)
            conn.close();
    }
   catch(SQLException){
      //ignore
   }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吨拗,隨后出現(xiàn)的幾起案子满哪,更是在濱河造成了極大的恐慌,老刑警劉巖劝篷,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哨鸭,死亡現(xiàn)場離奇詭異,居然都是意外死亡娇妓,警方通過查閱死者的電腦和手機像鸡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哈恰,“玉大人只估,你說我怎么就攤上這事∽疟粒” “怎么了蛔钙?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蓬戚。 經(jīng)常有香客問我,道長宾抓,這世上最難降的妖魔是什么子漩? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮石洗,結(jié)果婚禮上幢泼,老公的妹妹穿的比我還像新娘。我一直安慰自己讲衫,他們只是感情好缕棵,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布孵班。 她就那樣靜靜地躺著,像睡著了一般招驴。 火紅的嫁衣襯著肌膚如雪篙程。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天别厘,我揣著相機與錄音虱饿,去河邊找鬼。 笑死触趴,一個胖子當(dāng)著我的面吹牛氮发,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冗懦,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼爽冕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了披蕉?” 一聲冷哼從身側(cè)響起颈畸,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嚣艇,沒想到半個月后承冰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡食零,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年困乒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贰谣。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡娜搂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吱抚,到底是詐尸還是另有隱情百宇,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布秘豹,位于F島的核電站携御,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏既绕。R本人自食惡果不足惜啄刹,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凄贩。 院中可真熱鬧誓军,春花似錦、人聲如沸疲扎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壹甥,卻和暖如春救巷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盹廷。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工征绸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俄占。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓管怠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缸榄。 傳聞我的和親對象是個殘疾皇子渤弛,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一,JDBC概述 1.為什么要使用JDBC 1.1沒有JDBC 1.2有了JDBC后 2.JDBC的概念 2.1....
    有樓萬事足閱讀 219評論 0 0
  • JDBC API 是一系列的接口。它使得應(yīng)用程序能夠進(jìn)行數(shù)據(jù)庫聯(lián)接甚带,執(zhí)行SQL語句她肯,并且得到返回結(jié)果。 Drive...
    怪蜀黍Zzzzlw閱讀 404評論 0 2
  • 本人的環(huán)境為Myeclipse10鹰贵、MySQL5.7.15 本文包括:簡介JDBC編程步驟打通數(shù)據(jù)庫程序詳解—Dr...
    廖少少閱讀 3,946評論 7 39
  • JDBC簡介 SUN公司為了簡化晴氨、統(tǒng)一對數(shù)據(jù)庫的操作,定義了一套Java操作數(shù)據(jù)庫的規(guī)范碉输,稱之為JDBC籽前。JDBC...
    奮斗的老王閱讀 1,518評論 0 51
  • 夏天很快過去。 不知道從什么時候起敷钾,這間被樹蔭婆娑俯瞰的小房子成了我棲身的寓所枝哄。總是在一天的忙碌過...
    清泉石下閱讀 797評論 1 2