1、在学习JDBC的时候,需要连接数据库,在一个项目中,
如果每一个客户请求,都连接一次数据库,反复去连接数据库,耗费时间长,浪费资源
这里就引出了单例,在一个项目中,只连接一次,以后直接使用
2、创建连接数据库的配置文件db.properties
oralce.orcl.driver_class = oracle.jdbc.driver.OracleDriver
oralce.orcl.uersname = news
oralce.orcl.password = news
oralce.orcl.url = jdbc:oracl:thin:@localhost:1521:orcl
3、创建一个工具类,用来管理和读取配置信息,这个类就是单例
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ConfigManager {
private Properties properties;
private static ConfigManager configManager;
private ConfigManager(){
properties = new Properties();
InputStream in = ConfigManager.class.getResourceAsStream("/db.properties");
try {
properties.load(in);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 单例模式:
* 只能创建一个实例
* 节省资源
* 作为对象的创建模式,单例模式确保某一个类只有一个实例,
* 而且自行实例化并向整个系统提供这个实例。这个类称为单例类
*/
public synchronized static ConfigManager getInstance(){
synchronized(ConfigManager.class){}//类锁,在static下不能用this
if(configManager==null){
configManager = new ConfigManager();
}
return configManager;
}
public String getProperty(String keyName){
synchronized(this){}//对象锁
return properties.getProperty(keyName);
}
}