離弦之Ray

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks

          設計模式看懂了,好像是沒什么用的。只有在你的開發中運用起來才有它的意義。

          雖然還是小菜鳥,但既然看過了設計模式,還是希望能用起來的。

          想做個自娛自樂的j2ee的東西。

          關于得到數據庫連接部分,一開始覺得是用工廠模式,用工廠模式得到Connection對象,試了幾次好像不行。

          然后嘗試單態模式,創造了一個DatabaseGeneralServices類,來提供數據庫連接和關閉數據庫等一些通用的服務。
          一切正常。有點小感悟,代碼如下,希望高手指點。

          package com.ClockWise.ray.persistence;

          import java.sql.Connection;
          import java.sql.PreparedStatement;
          import java.sql.ResultSet;
          import java.sql.SQLException;

          import javax.naming.InitialContext;
          import javax.naming.NamingException;
          import javax.sql.DataSource;

          public class  DatabaseGeneralServices {
           private DataSource ds;
           private InitialContext ic;
           
           private static DatabaseGeneralServices dgs = new DatabaseGeneralServices();
           
           
           private DatabaseGeneralServices()//use singleton pattern, so the constructor is private
            { 
             try{
                ic = new InitialContext ();
                ds = (DataSource)ic.lookup("java:jdbc/readshare");//get database connection
            }catch(NamingException e){
             e.printStackTrace();
            }
           }
           
           public  Connection getConnection(){
            try{
             return ds.getConnection();
            }catch(SQLException e){
             e.printStackTrace();
            }
            return null;
           }
           
           public  void closeConnection(ResultSet rs,PreparedStatement ps,Connection conn){
               try{
                if(rs!=null){
                 rs.close();
                 }
                if(ps!=null){
                 ps.close();
                }
                if(conn!=null){
                 conn.close();
                }
               }catch(SQLException e ){
                e.printStackTrace();
               }
           }
           
           public static DatabaseGeneralServices getInstance()//get the sigleton instance
           {
            if(null==dgs){dgs= new DatabaseGeneralServices();} 
            return dgs;
           }

          }

          posted on 2007-12-17 14:55 離弦之ray的技術天空 閱讀(478) 評論(0)  編輯  收藏 所屬分類: Design PatternJ2EE
          主站蜘蛛池模板: 界首市| 城固县| 方山县| 微博| 商城县| 延庆县| 沧州市| 澳门| 晴隆县| 武山县| 库车县| 天全县| 郧西县| 包头市| 冷水江市| 保德县| 大英县| 兴安盟| 遂溪县| 海原县| 定远县| 中方县| 乌恰县| 宁武县| 余干县| 泗水县| 曲松县| 南和县| 武清区| 高淳县| 靖安县| 新建县| 建昌县| 保德县| SHOW| 北海市| 龙南县| 乾安县| 威信县| 临颍县| 玉龙|