满足开闭原则的JDBCUtils~

简介: 满足开闭原则的JDBCUtils~

我们都知道开闭原则即为对修改关闭,对拓展开放,那么对于实现既能通过DriverManager连接数据库,也能实现使用c3P0连接数据库,连接数据库的方式即为可变点,我们只需要使用抽象类或者接口封装可变点,再将可变点的每一个具体实现方式用一个类去描述


封装可变点:获取连接对象

package JDBC;
import java.sql.Connection;
import java.sql.SQLException;
public  abstract  class AbstractJDBCUtils {
    public abstract Connection getConnection() throws SQLException;//用于定义获取连接对象的抽象方法
    //关闭资源的方法
    .........
}

具体实现方式1:通过c3p0数据库连接池获取连接对象

package JDBC;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class JDBCFromC3p0Source extends AbstractJDBCUtils{
    //通过使用c3p0获取连接对象的方法
    .......
    }
}

具体实现方式2:通过DriverManager获取连接对象

package JDBC;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCFromDriverManager extends AbstractJDBCUtils{
    @Override
    public Connection getConnection() throws SQLException {
       //通过DriverManager获取连接对象的方法
    }
}
相关文章
|
Java 数据库连接 数据库
JDBC学习(三):封装工具类JDBCUtils类
为了以后方便进行数据库连接、数据库关闭、还有后面的连接池的操作等功能,现在将功能封装到JDBCUtils类当中,作为自己的一个工具箱。
381 0
|
6月前
|
设计模式 C#
C#反射机制实现开闭原则的简单工厂模式
C#反射机制实现开闭原则的简单工厂模式
54 0
|
运维 关系型数据库 Java
软件设计原则(02)-开闭原则(Open Close Principle,OCP)
软件设计原则(02)-开闭原则(Open Close Principle,OCP)
64 0
|
Java 数据库连接 数据库
手写数据库连接池,让抽象工厂不再抽象
在讲解抽象工厂之前,我们要了解两个概念:产品等级结构和产品族,如下图所示。
67 0
|
设计模式 安全 Java
设计模式学习(九):Abstract Factory抽象工厂模式
Abstract的意思是“抽象的”,Factory的意思是“工厂”。在Abstract Factory模式中,不仅有“抽象工厂”,还有“抽象零件”和“抽象产品”。抽象工厂的工作是将“抽象零件”组装为“抽象产品”。
设计模式学习(九):Abstract Factory抽象工厂模式
|
存储 druid Java
Dao层设计思想、JdbcUtils类、数据库连接池技术
Dao层设计思想、JdbcUtils类、数据库连接池技术
138 0
Dao层设计思想、JdbcUtils类、数据库连接池技术
|
设计模式
《一天一个设计模式》----抽象工厂模式(Abstract Factory)
《一天一个设计模式》----抽象工厂模式(Abstract Factory)
129 0
《一天一个设计模式》----抽象工厂模式(Abstract Factory)
|
消息中间件 设计模式 存储
开闭原则详细介绍
开闭原则详细介绍
268 0
|
SQL Java 数据库连接
jdbcUtils | 学习笔记
快速学习 jdbcUtils
168 0
|
Java 设计模式 C++
设计模式:工厂方法模式(Factory Method)和抽象工厂模式(Abstact Factory)
 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。
6351 1