您的位置:首页 > 其它

采用static nested的安全的单例模式脚本

2014-05-17 19:48 239 查看
初学Java模式,参考他人的脚本写了个安全的单例模式的数据库连接DAO

package com.jobbole;

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

/* 使用nested class 来实现安全的单例模式 */
public class SecuritySingleton {

/*Initialization on Demand Holder. 这种方法使用内部类来做到延迟加载对象,在初始化这个内部类的时候,
* JLS(Java Language Sepcification)会保证这个类的线程安全。这种写法完全使用了Java虚拟机的机制进行同步保证,
* 没有一个同步的关键字。
**/
private static final String className = "";
private static final String url = "";
private static final String user = "";
private static final String password = "";

// 通过静态代码块注册数据库驱动,保证注册只执行一次
static{
try {
Class.forName(className); // 注册驱动
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

private SecuritySingleton(){}

public static SecuritySingleton getInstance(){
return SingletonHolder.instance;
}

public Connection getConnection(){
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}

private static class SingletonHolder{
public static final SecuritySingleton instance = new SecuritySingleton();
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: