这是我用来获取数据库连接的单例类。
我有一个问题:为什么在单例类中必须有一个私有构造函数(因为在我的整个应用程序中,我只调用这个类一次),由于可以使用静态方法实现类的一个实例?
这个私有构造函数能否被避免或者说是必须的?
public class ConnPoolFactory {
private static DataSource dataSource;
private static Connection connection;
private ConnPoolFactory() {
System.out.println(" ConnPoolFactory cons is called ");
}
public static synchronized Connection getConnection() throws SQLException {
try {
if (connection == null) {
Context initContext = new InitialContext();
Context envContext = (Context) initContext
.lookup("java:/comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/Naresh");
connection = dataSource.getConnection();
} else {
return connection;
}
} catch (NamingException e) {
e.printStackTrace();
}
return connection;
}
}