设计模式看懂了,好像是没什么用的。只有在你的开发中运用起来才有它的意义。
虽然还是小菜鸟,但既然看过了设计模式,还是希望能用起来的。
想做个自娱自乐的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;
}
}