设计模式[16]-Facede

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介:

Type: Structural

Facade: 为子系统中的一组接口提供一个一致的界面。典型应用是数据库JDBC的应用。 Jsp中常用的操作数据库的方法如下:


public class DBCompare {  
  Connection conn = null;  
  PreparedStatement prep = null;  
  ResultSet rset = null;   
  try {  
     Class.forName( "<driver>" ).newInstance();  
     conn = DriverManager.getConnection( "<database>" );  
      
     String sql = "SELECT * FROM <table> WHERE <column name> = ?";  
     prep = conn.prepareStatement( sql );  
     prep.setString( 1, "<column value>" );  
     rset = prep.executeQuery();  
     if( rset.next() ) {  
        System.out.println( rset.getString( "<column name" ) );  
     }  
  } catch( SException e ) {  
     e.printStackTrace();  
  } finally {  
     rset.close();  
     prep.close();  
     conn.close();  
  }  
} 


在应用中,经常需要对数据库操作,每次都写上述一段代码肯定比较麻烦,需要将其中不变的部分提炼出来,做成一个接口,这就引入了facade外观对象.如果以后我们更换Class.forName中的 <driver>也非常方便,比如从Mysql数据库换到Oracle数据库,只要更换facade接口中的driver就可以。


public class DBCompare {  

  String sql = "SELECT * FROM <table> WHERE <column name> = ?";    

  try {  
     Mysql msql=new mysql(sql);  
     msql.setString( 1, "<column value>" );  
     rset = msql.executeQuery();  
     if( rset.next() ) {  
        System.out.println( rset.getString( "<column name" ) );  
     }  
  } catch( SException e ) {  
     e.printStackTrace();  
  } finally {  
     mysql.close();  
     mysql=null;  
  }  
}
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10月前
|
设计模式 C++
[学习][笔记]设计模式(基于C/C++实现)<五>装饰器模式
[学习][笔记]设计模式(基于C/C++实现)<五>装饰器模式
|
10月前
|
设计模式 Java C++
[学习][笔记]设计模式(基于C/C++实现)<八>工厂模式
[学习][笔记]设计模式(基于C/C++实现)<八>工厂模式
|
10月前
|
设计模式 安全 网络安全
[学习][笔记]设计模式(基于C/C++实现)<四>代理模式
[学习][笔记]设计模式(基于C/C++实现)<四>代理模式
|
10月前
|
设计模式 算法 Java
[学习][笔记]设计模式(基于C/C++实现)<三>策略模式
[学习][笔记]设计模式(基于C/C++实现)<三>策略模式
|
10月前
|
设计模式 Java Linux
[学习][笔记]设计模式(基于C/C++实现)<六>适配器模式
[学习][笔记]设计模式(基于C/C++实现)<六>适配器模式
|
10月前
|
设计模式 C++
[学习][笔记]设计模式(基于C/C++实现)<十>建造者模式
[学习][笔记]设计模式(基于C/C++实现)<十>建造者模式
|
设计模式 C++
[学习][笔记]设计模式(基于C/C++实现)<五>装饰器模式
设计模式(基于C/C++实现)<五>装饰器模式
|
设计模式 算法 Java
[学习][笔记]设计模式(基于C/C++实现)<三>策略模式
设计模式(基于C/C++实现)<三>策略模式