JDBC:Java Database Connectivityjava
1:DriverManager:管理一組JDBC驅動程序的基本服務----這是API中的解釋
個人理解是DriverManager就像是一個容器,裏面能夠盛放多個與不一樣數據庫的驅動程序,
個人作法是:
第一步:註冊驅動,獲得driver中的驅動
DriverManager.deregisterDriver(new oracle.jdbc.driver.OracleDriver());
driver是Java中規定每一個驅動程序必須實現的接口,不一樣數據庫的廠商去實現這個接口,Java開發人員使用某一數據庫時,
同時會獲得數據庫廠商提供的driver接口的實現類(就是一組夾包),類裏面有廠商本身定義的驅動,開發人員能夠實例化這個類獲得驅動
第一步就是註冊驅動,獲得實現類的對象,並當作DriverManager方法中的參數,這樣DriverManager容器中就有了開發人員指定
的驅動,
第二步:創建鏈接
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "frende", "lanxing");
getConnection();三個參數分別是:指定數據庫URL、數據庫中的帳戶名、密碼
--- 在調用 getConnection 方法時,DriverManager 會試着從初始化時加載的那些驅動程序以及使用與當前 applet 或
應用程序相同的類加載器顯式加載的那些驅動程序中查找合適的驅動程序。----這是API中的寫法
就是當調用 getConnection方法時,DriverManager會在容器中尋找 ,與參數中指定URL相符的數據庫驅動,並創建鏈接
第三步:經過鏈接對象建立sql容器PreparedStatement,發送sql:
preparedStatement pstmt=conn.prepareStatement(sql);
preparedStatement這個類裏有解析sql語句的方法,查詢方法能夠返回一個ResultSet對象
ResultSet rs=pstmt.executeQuery();
ResultSet這個類能夠存儲sql語句查詢的數據庫結果集,並提供遍歷結果集中值得方法,經過獲得的ResultSet對象。
能夠解析封裝在對象中的數據庫信息,
第四步:解析結果集
while(rs.next()){
frende fren1=new frende(rs.getString(1),rs.getString(2),rs.getInt(3),rs.getDate(4),
rs.getString(5),rs.getString(6),rs.getString(7),rs.getString(8),rs.getString(9));
list.add(fren1);
}
將解析的值封裝在對應的javabean對象中,
若是解析的是多條數據,那麼解析一條,便把一條數據封裝在javabean對象中,並把對象存在集合裏,
這樣集合裏就存放了多個javabean對象,每一個javabean對象內封裝一條數據,
這樣在遍歷集合獲得每一條數據
******************************小故事*****************************************
一我的再教另外一我的學習JDBC,怎樣和數據庫創建鏈接獲取數據。從頭開始講第一步註冊驅動寫完
DriverManager.deregisterDriver(new oracle.jdbc.driver.OracleDriver());一點擊回車,在講解人的想象裏
就像美國大片內同樣,從鍵盤下,回車鍵的觸點連在一塊,一個信號順着鍵盤線進入電腦,就像動畫片同樣,鏡頭由模糊變得清晰
一個挺大的廠房似的地方,進門的上方寫着「oracle數據存儲有限公司」,而後大門自動打開,就像航拍同樣廠房內忙碌的人們來來回回,
而後鏡頭落在了廠房內的一間小房間的門上,門上面寫着經理辦公室,一個叫Oracle_driver的小人打開門走了進去,
經理manager看到Oracle_driver進來講:這星期輪到你值班了,你到DriverManager物流園哪裏等着,看有沒有人到咱這裏取數據,
而後給他們帶路,領到我們廠子裏來,去吧。Oracle_driver離開oracle倉庫坐上公交車來到了DriverManager這裏。
Oracle_driver進入DriverManager廠房房間,DriverManager房間裏有好多個門,通往不一樣的地方
DriverManager房間裏管事的DM說:"等着",而後就走了。
Oracle_driver閒着無聊就在房間裏轉了轉,看到房間裏有好多人,
有一個叫mysql_driver的小人說着一口東北話過來搭訕問:"你是oracle公司的吧,大家那待遇怎麼樣"?
Oracle_driver說:"待遇馬馬虎虎,你是mysql公司的吧,大家公司是免費的挺忙的吧,咱們公司這兩年業務量降低了,待遇也不如從前了。。。。".
聊了一下子Oracle_driver好像聽着有人在叫他,一看是DriverManager房間裏管事的DM,
DM過來講:你瞎轉悠啥,有人找你,在那裏。Oracle_driver順着DM指的方向,看到getConnection那個門前有人衝他招手
Oracle_driver來到getConnection門前,看到那我的,那我的顛顛的跑過來,遞上一根哈德門,那人說本身名字叫conn
conn說:「你就是oracle數據公司的?我想到你公司的scoot部門取一些東西」
Oracle_driver說:「你要取數據得有部門的通行證」
conn說:「我帶着呢,你看」
Oracle_driver拿過通行證看到通行證上寫着tiger,還有oracle公司的印戳,是本身公司發的通行證。
Oracle_driver說:「你要啥數據」
conn說:「大家那查數據價格是多少?」
Oracle_driver說:「那得看你要多少了」
conn說:「你等着,我去問問,過會兒來找你要」說完conn就走了
鏡頭跟着conn來到一個叫Connection的房間裏,Connection的房間裏又有好多的門通往不一樣的地方
conn走到prepareStatement門前,門前有一個叫pstmt的小夥在那等着,看到conn來,趕忙上前遞上一根紅塔山
pstmt說:「我想要牛旺莊有個叫小芳的女孩的數據.....」
conn說:「這我的的數據,價格得等着取回來一塊算」。
pstmt說:「沒事,多少都行,你多少也給便宜點」
conn:「哎呀買賣很差幹,忒便宜老,俺真不掙錢,你等會兒」。
conn又來到getConnection房門前給Oracle_driver說了要誰誰誰的數據
conn說:這一我的的數據得多錢安,
Oracle_driver說:你的數據有點多,獲得具體部門說,你跟我來吧。
conn跟着Oracle_driver來到oracle的公司,公司里人來人往,他們到了Scott部門前,
conn看到Scott部門前臺坐着一位漂亮的女孩,在低頭玩着手機。
Oracle_driver對conn說:scoot部門的前臺叫髮姐,老漂亮了,你進去吧,我得回到DriverManager那裏去
Oracle_driver說完就走了。conn在手上吐了口吐沫,而後在頭上抹了抹。進了Scott部門的前臺大廳。
來到髮姐面前,conn說:「嗨.......」----(要知道conn是怎麼搭訕的,你能夠在你的大腦中想像各類不要臉的場景)
最後髮姐說:「我給大家查查」。查了一下子
髮姐說:你要的數據在emp小組,你到那拿去吧?
conn來到emp小組說了要查詢的人名,裏面的人給了他一張單據,說到前臺交一下錢,而後過來領數據
conn來到前臺說:我又回來了,
髮姐說:3000塊錢
conn說:就一我的的資料這麼貴!
髮姐說:這個收費是按年齡來的,通常是16-35歲2999,35-65是1999,16歲如下2599,65以上999,
conn說:差距怎麼這麼大?
髮姐說:"你要的資料裏面的這個女孩挺年輕的,青春費麼天然貴點"
conn說:"這是幫朋友待查的,我還沒結婚呢"
髮姐說:"這點錢很少,你看起來不像是個沒錢的"
conn說:"那是,給",說着遞了一沓錢
髮姐過了過說:「多了一百」
conn說:「給你的小費」
髮姐伴了個可愛獲得笑容說:「謝謝」
conn拿到了資料,跟前臺髮姐打了聲招呼就走了。
conn在路上盤算着要給客戶要多少錢,最後決定要3500,後來想了想還給了髮姐100元,有點虧了,就決定要3600.
conn盤算的時間就來到的Connection的房間,來到prepareStatement門前看到pstmt
conn像pstmt說出了資料的價格,pstmt也是瞪大了眼說:這麼多
conn說:--此處省略10000字--
最後pstmt仍是付了3600而後拿着資料數據走了
鏡頭跟着pstmt來到PreparedStatement房間,PreparedStatement房間又有好多門通往不一樣的地方。
pstmt來到房間的executeQuery門前,見到在門前久等的rs,
pstmt對rs說,你要的這我的的資料得3999,我給你要4100,就掙你100元。
rs一樣是瞪大了雙眼說:咋這麼貴呢?
pstmt說:--此處省略10000字---
最後rs付了錢,走了
鏡頭跟着rs來到了一個叫ResultSet的房間裏,ResultSet房間裏有好多窗口
rs找到ResultSet房間的老大說了多少錢,老大很淡定的說:你把資料拿到next窗口那,讓next窗口的人分一下類,
讓他們分給不一樣的窗口,記着給next窗口的人說,javabean的人來拿貨的時候收他們4500,就說是4399,咱掙他們100塊。