package Factoryproduct;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;interface DBlink {//数据库连接方法public Connection Link();
}//SQLserver数据库连接class SQLServer implements DBlink{Statement stat=null;Connection conn=null;public Connection Link(){try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=master","root","123456");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {stat =conn.createStatement();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}}//mysql数据库连接class MySql implements DBlink{Statement stat=null;Connection conn=null;public Connection Link() {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/employees?characterEncoding=utf8","root","123456");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {stat =conn.createStatement();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}}//Oracle数据库连接class OraCle implements DBlink{Statement stat=null;Connection conn=null;public Connection Link() {try {Class.forName("oracle.jdbc.driver.OracleDriver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:employees?characterEncoding=utf8","root","123456");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {stat =conn.createStatement();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return conn;}}   //testclass DBlinkFactory{public static Connection Return(String linkkind){if(linkkind=="SQLserver")return new SQLServer().Link();if(linkkind=="Oracle")return new OraCle().Link();if(linkkind=="Mysql")return new MySql().Link();return null;}}

工厂模式实现多种数据库连接相关推荐

  1. C#之三十九 抽象工厂模式

    在软件系统中,经常面临着"一系列相互依赖的对象"的创建工作:同时由于需求的变化,往往存在着更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种 ...

  2. 工厂模式:优雅地生成多种类型对象

    ​ 工厂模式是一种非常常用的创建型设计模式,其提供了创建对象的最佳方式.在创建对象时,不会对客户端暴露对象的创建逻辑,而是通过使用共同的接口来创建对象.通过使用工厂模式,在业务代码中可以灵活的操控生成 ...

  3. 抽象工厂模式(JAVA反射)

    实例代码(JAVA):模式动机 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法.但是 ...

  4. php工厂模式和单例模式,php 设计模式之工厂模式、单例模式、注册树模式

    php 设计模式之工厂模式.单例模式.注册树模式 在软件工程中,创建型设计模式承担着对象创建的职责,尝试创建适合程序上下文的对象,对象创建设计模式的产生是由于软件工程设计的问题,具体说是向设计中增加复 ...

  5. c 工厂模式与mysql链接_工厂模式连接数据库

    在项目中通常可能会使用不同的数据源,可能是SQL Server也可能是ACCESS或者是Oracle,那么如何保证在使用不同数据源的时候,使项目代码更改的代价最小呢? 对,使用工厂模式.在Net1.1 ...

  6. Java-设计模式(一)------工厂模式

    正文 工厂模式是Java中最常用的设计模式.工厂模式提供很好的创建对象的方式,属于创建型模式. 使用工厂模式创建对象是不向使用者暴露创建细节,并且可以通过统一的接口引用对象. 工厂模式的作用 首先,工 ...

  7. 深入设计模式05---抽象工厂模式

    前言 自强者打不到,自弃者扶不起.坚持就是胜利!!! 本篇主要介绍抽象工厂模式的结构以及真实场景应用,抽象工厂模式也是常用的创建型模式之一,这种设计模式比工厂方法模式的抽象程度更高,在工厂方法模式中每 ...

  8. 设计模式1——策略模式 | 适配器模式 | 工厂模式

    最近在看<Think In JAVA>,其中在讲解继承,组合,抽象类和接口的时候,提到了题中的几个设计模式.这几个设计模式也确实让我更好的理解了JAVA中各个数据结构的含义.今天就结合书本 ...

  9. 设计模式学习笔记(三)工厂模式中的简单工厂、工厂方法和抽象工厂模式之间的区别

    设计模式中的工厂模式(Factory Design pattern)是一个比较常用的创建型设计模式,其中可以细分为三种:简单工厂(Simple Factory).工厂方法(Factory Method ...

  10. 工厂模式和策略模式的综合使用

    目录 一.简单的工厂模式了解与使用 (一)基本概念理解 (二)简单工厂模式的认识和对应角色的分析 基本认识 角色理解 (三)使用场景和典型应用 二.简单的策略模式了解与使用 (一)基本概念理解 (二) ...

最新文章

  1. 结构体中定义函数指针
  2. Scala implement Comb Sort
  3. win7 64位安装mysql教程视频_64位Win7系统安装Mysql 5.7.22图文教程
  4. npoi的mvc怎么ajax导出,asp.net mvc利用NPOI导入导出Excel解决方法
  5. eclipse CTRL+F Find/Replace使用正则表达式
  6. python到底是啥_Python语言中的__init__到底是干什么的?
  7. Lc165-版本号比较
  8. 【转】Numpy三维数组的转置与交换轴
  9. c#开发Mongo笔记第九篇
  10. java 中的radix_线程“main”中的异常java.lang.NumberFormatException:Radix超出范围
  11. 使用php函数对变量进行比较,PHP:将变量传递给函数,对变量进行处理,然后将其返回...
  12. Windows搭建Sosoapi
  13. 网易im 服务器消息格式,网易云信快速集成以及消息类型自定义
  14. 图像质量评价数据库与常见评价算法总结
  15. 《动手学ROS2进阶篇》8.2RVIZ2可视化移动机器人模型
  16. 在无外网虚拟机CentOS7下安装金山wps-office最新版(超详细小白教程)
  17. 2018再见,2019你好
  18. 【Junit Experiment】Junit 软件质量测试实验--日期格式规范性+字符串格式规范性
  19. 自动驾驶数据闭环系列之一:理想丰满,现实骨感
  20. 直播预告 | 哈工大HIT-SCIR实验室专场二

热门文章

  1. HTML颜色名称和颜色代码表
  2. 计算机专业硬件面试题目,硬件工程师面试试题
  3. 电商网站对服务器配置有什么要求?
  4. 我,程序员,32岁失业后干啥都赔钱,过去月薪2万的岁月不再重来 你呢?
  5. 常用搜索方法(部分)
  6. java instant_Java Instant类
  7. firefly-rk3288使用USB GADGET实现大容量存储脚本
  8. 为UBUNTU安装一个像千千静听一样的MP3播放器
  9. stm32c6t6硬件iic接口的使用--以0.96寸oled为例
  10. Nginx代理百度地图离线瓦片