成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java JDBC編程總結

開發 后端
JDBC是JAVA操作數據庫的基本技術,并不是唯一技術。本文將對Java JDBC編程進行總結,希望能對大家有所幫助。

Hibernate、TopLink等OR Mapping操作數據庫的技術都是建立JDBC技術之上的,實際來說,他們的性能和JDBC是有很大差距的,但反過來說,如果JDBC用不好,還不如hibernate呢。暫且不說這些孰優孰劣的話了,再次主要是對Java的基礎技術做個總結,以加深認識。

一、JDBC的基本原理

JDBC是Java操作數據庫的技術規范。他實際上定義了一組標準的操作數據庫的接口。為了能讓Java操作數據庫,必須要有實現了JDBC這些接口的類,不同的數據庫廠商為了讓Java語言能操作自己的數據庫,都提供了對JDBC接口的實現--這些實現了JDBC接口的類打成一個jar包,就是我們平時看到的數據庫驅動。由于不同的數據庫操作數據的機制不一樣,因此JDBC的具體實現也就千差萬別,但是你作為java程序員,你只和Java JDBC的接口打交到,才不用理會他們怎么實現的!呵呵,現在知道JDBC驅動是怎么回事了。當然,這些類可以自己去寫--如果你很牛!

二、JDBC編程的步驟

為了說明這個步驟,假設你要通過java程序執行一個sql查詢,你需要按照如下的步驟去走:

1、創建指定數據庫的URL

這個URL實際上還是統一資源定位器,里面包含了一些連接數據庫的信息:數據庫類型、端口、驅動類型、連接方式、數據庫服務器的ip(或名字)、數據庫名(有的是別名)等。其格式如下:

jdbc:subProtocol:subName://DBserverIP:port/DatabaseName
例如mysql的一個url:jdbc:mysql://192.168.3.143:3306/zfvims

2、加載驅動類到JVM內存區域中

有兩種方法:

一種是用Class.forName()方法加載指定的驅動程序。

一種是將驅動程序添加到java.lang.System的屬性jdbc.drivers中。
最后說明一點,有時候添加到系統的CLASSPATH環境變量是不行的,原因是在使用JDBC接口操作數據庫前,JVM還沒有加載上驅動。

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

3、、通過DriverManager類管理驅動、創建數據庫連接。

DriverManager類作用于程序員和JDBC驅動程序之間,提供注冊管理驅動建立連接細節等方法,它所有成員均為靜態的。通過其getConnection方法會創建一個JDBC Connection對象。

Connection conn=DriverManager.registerDriver("jdbc:mysql://192.168.3.143:3306/zfvims","lavasoft","password");

4、Connection類--數據庫連接

這里所說的Connection類實際上是實現了JDBC的Connection接口的類,這個類一般都是jdbc驅動程序實現了。Connection類表示了數據庫連接,通過其對象可以獲取一個獲取數據庫和表等數據庫對象的詳細信息。但更多的是通過這個連接更進一步去向數據庫發送SQL語句去執行,下面會講到。
數據庫的連接的建立是很耗費資源和時間的,因此在不用連接的情況下要通過其close()方法將連接關閉,以釋放系統資源。

5、Statement類--發送并執行(靜態)SQL語句

通過Connection對象的createStatement()方法可以創建一個Statement對象,通過該對象的方法可以(發送)并執行一個靜態sql語句。如果要執行動態的sql(sql串中有參數),那么就用PreparedStatement類,用法和Statement類似。

Statement stmt=con.createStatement()

6、ResultSet類--結果集

當你執行一條sql查詢后,就會產生一個查詢結果。ResultSet就表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。ResultSet 對象具有指向其當前數據行的指針。通過ResultSet對象不但可以結果集數據,還可以獲取結果集表的列名、數據類型等信息。

ResultSet rs=stmt.executeQuery(sql)

7、關閉數據庫連接

當對sql操作完成后,應該關閉數據庫連接,這樣避免因為連接未關閉而耗費系統資源,如果每次都不關閉,多次操作將建立多個連接,最終數據庫連接會達到最大限度,或者耗盡系統的資源,從而導致應用崩潰。因此要注意關閉資源,尤其是數據庫連接。

三、JDBC編程最基本的實例

下面通過一個執行一條簡單的MySQL查詢來說名上面的JDBC編程的一般方法和步驟。

  1. public class TestJDBC(){  
  2.     public static Connection getConnectionByJDBC() {  
  3.         Connection conn = null;  
  4.         try {  
  5.             //裝載驅動類  
  6.             Class.forName("com.mysql.jdbc.Driver");  
  7.         } catch (ClassNotFoundException e) {  
  8.             System.out.println("裝載驅動異常!");  
  9.             e.printStackTrace();  
  10.         }  
  11.         try {  
  12.             //建立JDBC連接  
  13.             conn = DriverManager.getConnection(""jdbc:mysql://192.168.3.143:3306/zfvims","lavasoft","password");  
  14.         } catch (SQLException e) {  
  15.             System.out.println("鏈接數據庫異常!");  
  16.             e.printStackTrace();  
  17.         }  
  18.         return conn;  
  19.     }  
  20.       
  21.     public static String test() {  
  22.         String sqlx = "select t.code,t.name from province t order by t.code asc";  
  23.         try {  
  24.             //創建一個JDBC聲明  
  25.             Statement stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);  
  26.             //執行查詢  
  27.             ResultSet = stmt.executeQuery(sqlx);  
  28.             while (rs.next()) {  
  29.                 String code = rs.getString("code");  
  30.                 String name = rs.getString("name");  
  31.                 System.out.println(code+name);  
  32.             }  
  33.         } catch (SQLException e) {  
  34.             System.out.println(e.getMessage());  
  35.             e.printStackTrace();  
  36.         } finally {  
  37.             //預防性關閉連接(避免異常發生時在try語句塊關閉連接沒有執行)  
  38.             try {  
  39.                 if (conn != null) conn.close();  
  40.             } catch (SQLException e) {  
  41.                 System.out.println(e.getMessage());  
  42.                 e.printStackTrace();  
  43.             }  
  44.         }  
  45.     }     
  46.     public static void main(String args[]) {  
  47.         new TestJDBC().test();  
  48.     }     

四、JDBC編程的陷阱

1、conn一定要在finally語句塊進行關閉。

2、Statement、ResultSet盡可能縮小其變量作用域。

3、Statement可以使用多次,定義多個。一個Statement對象只和一個ResultSet對象關聯,并且是最后一次查詢。

4、ResultSet在Connection、ResultSet關閉后自動關閉。

還有很多需要寫的,以后再慢慢總結。

【編輯推薦】

  1. 在Weblogic中實現JDBC的功能
  2. 詳解JDBC與Hibernate區別
  3. JDBC連接MySQL數據庫關鍵四步
  4. 五步精通SQL Server 2000 JDBC驅動安裝與測試
  5. 詳解JDBC驅動的四種類型
  6. JDBC存儲過程在Oracle中的獲取結果集
責任編輯:彭凡 來源: 百度空間
相關推薦

2009-07-20 15:42:59

JDBC是什么

2009-07-15 16:16:22

JDBC下載

2009-07-14 17:01:24

JDBC基礎

2009-07-16 17:22:56

JDBC數據庫編程

2014-11-04 10:38:13

iOS圖形

2010-01-26 17:11:13

C++編程

2018-11-20 10:50:00

Java性能優化編程技巧

2018-06-07 09:29:34

數據庫MySQL慢SQL

2013-05-23 14:25:44

JDBC

2018-05-21 09:55:09

Java編程技巧

2010-02-23 16:32:14

Python編程

2012-05-18 10:36:20

CC++編程

2009-11-09 10:43:51

WCF Web編程模型

2022-08-01 10:11:24

Bash編程易錯代碼

2010-03-01 17:01:03

Python編程技巧

2009-11-10 13:08:13

VB.NET編程技巧

2013-07-11 14:41:16

編程經驗

2010-03-10 16:52:00

Python 編程語言

2010-04-13 10:32:40

Oracle數據庫編程

2009-11-10 15:30:46

VB.NET編程原則
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人深夜福利 | 日韩电影免费观看中文字幕 | 色播99| 国产精品久久久久久久一区探花 | 爱操av| 最近免费日本视频在线 | 91精品国产综合久久久动漫日韩 | 亚洲电影免费 | 中文字幕一区在线观看视频 | 成人黄色在线 | 亚洲国产精品激情在线观看 | 午夜影院在线观看免费 | 国产一区二区三区亚洲 | 欧美精品一区二区三区四区 | 亚洲成人一区 | 毛片a级| 久久久久精 | 久久er精品 | 国产精品视频一区二区三区 | 亚洲精品自在在线观看 | 久久久国产精品 | 国产精品久久久久久 | 国产三区四区 | 国产高清精品在线 | 亚洲视频在线观看 | 91麻豆精品国产91久久久久久 | 欧美精品国产一区二区 | 成人三级影院 | 中文字幕一区二区三区不卡 | 精品国产一区二区国模嫣然 | 久久精品国产清自在天天线 | 久久久精品一区二区 | 欧美黄 片免费观看 | 精产国产伦理一二三区 | 中文字幕国产一区 | 成人免费视频网站在线看 | 91精品国产一区二区三区 | 欧美综合一区二区三区 | 欧美日韩精品 | 色免费视频 | 男人久久天堂 |