離弦之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的技術天空 閱讀(481) 評論(0)  編輯  收藏 所屬分類: Design Pattern 、J2EE
          主站蜘蛛池模板: 昭平县| 拉孜县| 开封市| 拉萨市| 江安县| 保德县| 离岛区| 宜良县| 榆林市| 广平县| 双城市| 宜城市| 沾化县| 乐平市| 阿荣旗| 富民县| 大悟县| 琼海市| 那坡县| 天等县| 峡江县| 深泽县| 潼南县| 江西省| 肇源县| 阳东县| 东光县| 郓城县| 白水县| 东乌珠穆沁旗| 卓资县| 临沧市| 平山县| 新民市| 建水县| 宕昌县| 黄陵县| 临泽县| 徐水县| 武强县| 吉木乃县|