離弦之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 PatternJ2EE
          主站蜘蛛池模板: 孝义市| 巢湖市| 慈溪市| 巨鹿县| 石林| 桂平市| 香格里拉县| 山阴县| 沧源| 东港市| 南阳市| 三原县| 汤原县| 涡阳县| 慈溪市| 大田县| 白城市| 诏安县| 敦化市| 拜泉县| 鄂温| 盐山县| 西畴县| 卢氏县| 辽宁省| 宁海县| 精河县| 安化县| 鄂托克旗| 丹巴县| 通江县| 射阳县| 洛扎县| 朝阳县| 梁平县| 安岳县| 互助| 长阳| 乌什县| 西安市| 磴口县|