离弦之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的技术天空 阅读(472) 评论(0)  编辑  收藏 所属分类: Design PatternJ2EE

只有注册用户登录后才能发表评论。


网站导航: