如何使数据库类单例

时间:2018-06-07 06:19:01

标签: java design-patterns singleton

我是设计模式的新手。我想对这个数据库类使用单例设计模式。任何人都可以帮助我...感谢先进。

这是我的完整代码。

public interface ResourceConnection {
    public Connection getConnection();
}

public class ResourceConnectionFactory {
    public ResourceConnection getConnection() {
        return new MysqlResourceConnectionImpl();
    }
}


public class MysqlResourceConnectionImpl implements ResourceConnection {

    Connection con = null;

    @Override
    public Connection getConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/library", "root", "root");
        } 
        catch (ClassNotFoundException ex) {
            Logger.getLogger(MysqlResourceConnectionImpl.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(MysqlResourceConnectionImpl.class.getName()).log(Level.SEVERE, null, ex);
        }
        return con;
    }
}

2 个答案:

答案 0 :(得分:0)

要制作任何课程单身,你必须确保遵循以下事项。 (Singleton设计模式可以应用于任何地方。数据库类没有不同的实现)

  1. 限制类
  2. 实例化的私有构造函数
  3. 同一类的私有静态变量,它将存储该类的唯一实例。
  4. 获取此类实例的公共方法。这是其他类的访问点。
  5. 您可以使用Java Singleton Design Pattern中的此链接。这个网址的所有功劳。

答案 1 :(得分:0)

我理解您正在做的是为应用程序获取单个连接。如果您在多个位置重新使用该连接,则会出现容易出错的情况。您可以使用连接池为您设置连接,而不是这样做。以下是Connection Pool using DBCP

的示例