2009年11月11日

          JDBC01之基礎(未完存稿)

           

          JDBCJava Database Connectivity)是java訪問數據庫的基石,其它技術(如第三方O/R工具Hibernate,ibatis等)都是對JDBC的封裝。是Java數據庫連接的一個標準,是進行數據庫連接的抽象層,由Java編寫的一組類和接口組成,其接口的實現由各個數據庫廠商來完成。

          JDBC分類:

          JDBC-ODBC橋,通過JDBC-ODBC的調用方法調用事先已在使用者計算機上安裝好的ODBCOpen Database Connectivity 微軟公司開放服務結構中有關數據庫的一個組成部分)驅動。

          部分本地API部分Java的驅動程序,類似以上。

          JDBC網絡純Java驅動程序,這類型的驅動程序最大的好處是省去了在使用者計算機上安裝任何驅動程序的麻煩,只需在服務器端安裝好middleware,而middleware會負責所有存取數據庫時必要的轉換。

          本地協議的純 Java 驅動程序,:這類型的驅動程序是最成熟的JDBC驅動程序,不但無需在使用者計算機上安裝任何額外的驅動程序,也不需在服務器端安裝任何的中介程序(middleware),所有存取數據庫的操作,都直接由驅動程序來完成。

          JDBC API

          DriverManager

          Connection

          Connection

          Connection

          Statement

          PreparedStatement

          CallableStatement

          ResultSet

          ResultSet

          ResultSet

          Java.sql.Driver接口是所有JDBC驅動程序要實現的,不同的數據庫廠商提供不同的實現。然后再程序中由java.sql.DriverManager(驅動程序管理器類)來調用這些實現。

          首先加載驅動,通過調用Class類的forName()靜態方法,向其傳遞要加載的JDBC驅動的類名來完成。而注冊驅動,Driver 接口的驅動程序類都包含了靜態代碼塊,在這個靜態代碼塊中,會調用 DriverManager.registerDriver() 方法來注冊自身的一個實例。

          然后建立連接

          posted @ 2009-11-11 17:21 swedenborg 閱讀(116) | 評論 (0)編輯 收藏

          JDBC02之數據庫連接池(未完存稿)

           

          理解重點:

          是一個“緩沖池”,負責分配、管理和釋放數據庫連接,允許用用程序重復試用一個連接池中一個現有的數據庫連接,而不是重新建立一個。

          連接池通過設定最小連接數來初始化連接,通過最大連接數來限定當前連接池能占有的最大連接數量。在此過程中,通過設定最大空閑連接數來釋放多余連接數并約束保留一定空閑連接數,再通過設定最小空閑數來預防突然而來的鏈接(在最大連接數的限制下盡量滿足)。最后通后設定等待的最長時間來管理連接時間過長異常。

          Javax.sql.DateSource接口表示,其實現由服務器(如Weblogic,WebSphere,Tomcat)或一些開源組織提供(DBCP數據庫連接池,C3P0數據庫連接池)DataSource 通常被稱為數據源,它包含連接池和連接池管理兩個部分,習慣上也經常把 DataSource 稱為連接池。

          使用DBCP連接池實現,需增加兩jar包:Commons-dbcp.jar連接池的實現;Commons-pool.jar連接池實現的依賴庫。Tomcat的連接池即采用此連接池實現。

          操作重點:

          BasicDataSource bds=null;

          //創建數據源對象

          bds=new BasicDataSource();

          //設置連接數據庫的驅動

          bds.setDriverClassName("com.mysql.jdbc.Driver");

          //設置連接數據庫的url

          bds.setUrl("jdbc:mysql://localhost:3306/test");

          //設置連接數據庫的用戶名

          bds.setUsername("root");

          //設置連接數據庫的密碼

          bds.setPassword("root");

          //設置連接池啟動時的初始值

          bds.setInitialSize(5);

          //設置連接池的最大值

          bds.setMaxActive(50);

          //最大空閑值.當經過一個高峰時間后,連接池可以慢慢將已經

          //用不到的連接慢慢釋放一部分,一直減少到maxIdle為止

          bds.setMaxIdle(20);

          //最小空閑值.當空閑的連接數少于該值時,連接池就會預申請一些連接,

          //以避免洪峰來時再申請而造成的性能開銷

          bds.setMinIdle(5);

          //設置等待時間,以毫秒為單位

          bds.setMaxWait(5000);

          Connection con=null;

          PreparedStatement pstmt=null;

          ResultSet rs=null;

          String sql="select id,name,sex from customer";

          try {

          con=bds.getConnection();

          pstmt=con.prepareStatement(sql);

          rs=pstmt.executeQuery();

          while(rs.next()){

          Integer id=rs.getInt(1);

          String name=rs.getString(2);

          String sex=rs.getString(3);

          System.out.println("id "+id +" name "+ name +"   sex "+sex );

          }

          } catch (SQLException e) {

               e.printStackTrace();

          }

          posted @ 2009-11-11 17:19 swedenborg 閱讀(221) | 評論 (0)編輯 收藏

          2009年7月29日

          基于理解的java學習筆記之最最基礎部分

               摘要: 最最基礎部分 保留關鍵字:goto、const 增加關鍵字:assert、enum public class SimpleDemo02{// 聲明一個類,類名稱的命名規范:所有單詞的首字母大寫        public static void main(String args[]){ // 主方法  &nb...  閱讀全文

          posted @ 2009-07-29 18:20 swedenborg 閱讀(312) | 評論 (1)編輯 收藏

          僅列出標題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 凭祥市| 汕头市| 都江堰市| 武冈市| 遂平县| 寻乌县| 新龙县| 崇仁县| 弋阳县| 丰顺县| 昌宁县| 德钦县| 库尔勒市| 辰溪县| 江油市| 新干县| 光泽县| 友谊县| 察哈| 苍南县| 麻阳| 来凤县| 利川市| 石楼县| 小金县| 德化县| 固原市| 开封市| 玛曲县| 南通市| 娄底市| 南开区| 尉氏县| 田阳县| 隆林| 青河县| 贵德县| 秦皇岛市| 随州市| 红安县| 班戈县|