閱讀730 返回首頁    go 阿裏雲 go 技術社區[雲棲]


JDBC小結 單例模式 靜態代碼塊



            JDBC小結



J2EE:13個技術點:servlet/JSP JDBC。。。
JDBC: Java DataBase Connectivity(Java數據庫連接) 是一種技術規範

 

規範=(文檔+接口


容器下servlet-api.jar是容器廠商對servlet(javax.servlet.)技術的實現。(接口+容器廠商實現)


區分:

JDBC的規範的接口已經打到JDK的包中java.sql
數據庫廠商對JDBC的實現    ---------> 數據庫驅動程序。


JDBC2.0

JDBC4.0  Derby數據庫驅動4.0

Oracle10g中的驅動class12.zip(jar)
Oracle11g中的驅動ojdbc5/6.jar


JDBC的實現原理:


class DriverManager
{
   pirvate static java.sql.Driver driver;
   public static Connection getConnection(String url,String userName,String pwd)
   {
       return driver.connect(url,userName,pwd);
   }
   public static void registDriver(Driver d)
   {
     this.driver = d;
   }
}

class OracleDriver implments java.sql.Driver

{

  //靜態的代碼塊,在類加載進內存時就完成對對象的特殊的初始化(這個動作發生在類的構造器執行之前,也就是在沒有對象存在的情況下,靜態代碼

就已經完成了對對象的特殊的處理 ),此處的作用是,當Oracle的驅動器加載時,就自動創建一個自己。

   static

   {
      DriverManager.registDriver(new OracleDriver());
   }

 


Connection connect(String url,String userName,String pwd)

   {
      如何真實的和Oracle數據庫連接
   }
}

Class.forName("oracle.jdbc.driver.OracleDriver"); // 運用反射技術,將Oracle的驅動(class文件)加進內

JDBC:是麵試重點,通常要你自己徒手寫一個JDBC的連接



                   設計模式之單例設計模式


使用單例設計模式設計的類的特點:

1,在內存中的對象隻有一個

2,構造函數私有化

3,提供一個靜態的方法,便於外界對象的調用


餓漢式單例設計模式

class Singleton
{
   private Singleton()      // 私有化構造器
   {
   }
   private static Singleton s = new Singleton(); //創建一個自己的對象
   public static Singleton getInstance()   //提供給外界一個訪問的方法
   {
      return s;
   }
}


懶漢式單例設計模式

class Singleton
{
   private Singleton()
   {
   }
   private static Singleton s = null;  //此處沒有創建對象 而是在方法中創建的
   public static synchronized Singleton getInstance()
   {
      if(s == null)
      {
         s = new Singleton();
      }
      return s;
   }
}


// 使用單例模式

Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();




最後更新:2017-04-03 15:21:55

  上一篇:go 實戰DeviceIoControl 之二:獲取軟盤/硬盤/光盤的參數
  下一篇:go 編程珠璣之生成0至n-1之間的k個不同隨機序列的擴展問題 --2014人人網筆試題目