Readers: 52 | Updated: 03-01

Facade模式的一个典型应用--数据库JDBC的应用

Translate Into:
Facade模式的定义: 为子系统中的一组接口提供一个一致的界面.Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作:
说明:这是在网上的一篇文章中看到的列子,上面没有写全,我在这里补上了,没有用到接口。

package com.pattern.structural.facade;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/*
 * 外观模式的主要用途就是为子系统的复杂处理过程提供方便的调用方法,
 * 使得子系统更加容易被使用。
 * Facade对象通常属于Singleton模式。
*/
public class Mysql {
   
    private static Connection conn=null;
    private static PreparedStatement prep=null;

    public Mysql(String sql) {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","");
            prep = conn.prepareStatement(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void setString(int index, String parString) {
        try {
            prep.setString(index, parString);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public ResultSet executeQuery() {
        try {
            return prep.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        }
    }

    public void close() {
        try {
            conn.close();
            prep.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


package com.pattern.structural.facade;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class DBCompare {

    public void getResultSet(String sql) {
//        String sql = "SELECT * FROM bulletin WHERE id = ?";
        Mysql mysql = new Mysql(sql);
        try {
            mysql.setString(1, "4");
            ResultSet rset = mysql.executeQuery();
            while (rset.next()) {
                System.out.println(rset.getString("id"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            mysql.close();
            mysql = null;
        }
    }
}


package com.pattern.structural.facade;

import java.sql.ResultSet;

public class FacadeTest {

    public static void main(String[] args) {
       
        Mysql mysql = new Mysql("SELECT * FROM bulletin");
        try {
            ResultSet rset = mysql.executeQuery();
            while (rset.next()) {
                System.out.println(rset.getString("id"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            mysql.close();
            mysql = null;
        }
       
    }

}





From The Blogs

Personal Growth, Career Planning

2007
打破电子邮件的使用模式
我想给你们提供一个快速更新邮件方法,它可以让你摆脱每隔10分钟就是检查自己邮件的坏习惯,我简单说明也就是最近"回复你文章".这个方法已经一个多星期了,我也已看到这个实验获得的成功:纪律我现在只在上午9... 查看全文

Personal Growth, Career Planning

01-08
如何打破消极思维模式
假设你有种坏习惯:总是不断重复某种消极的想法;并假设这想法跟生活中的事件并无关系,仅仅是种消极的念头,诸如“我好沮丧”或“我讨厌我的工作”或“我干不了这个”或“我讨厌变胖”。被这样的思想占据脑海时,你... 查看全文

2007
不同类型公司的商业模式设计
原文作者:Alexander Osterwalder 原文链接:Business Model Design & Unbundling the Corporation 译者:M 在读Kaplan... 查看全文

Internet Observation

06-04
按F8无法进入安全模式的解决方法
我今天遇到出乎预料的问题,现在想和大家分享一下我碰到的情况以及解决方法。 按F8能够在系统启动和加载菜单之间的时间空隙里提供各种选择,比如说进入系统安全模式或恢复最后一次正确配置。我遇到的问题是无论我... 查看全文

沉 淀/古凯文

04-03
电子商务宝典之--早期阿里巴巴商业模式分析
阿里巴巴网站的目标是建立全球最大最活跃的网上贸易市场,阿里巴巴具有明确的市场定位,在发展初期专做信息流,绕开物流,前瞻性的观望资金流并在恰当的时候介入支付环节。它的的运营模式是遵循循序渐进的过程,依据... 查看全文

wangjue的BLOG

01-13
视频盈利模式新解:营销“视频”
《互联网周刊》 2007-11-05  作者:曹慧敏 这一年,中国的视频网站从30多家暴增到300多家,网络视频整体呈现出迅速崛起的态势,然而也是在这一年里,那些无法跨越技术、内容版权、高昂成本等多重... 查看全文

幸福生活博客The Way To Happiness

01-14
警惕:12项职场缺陷的行为模式
什么样的行为模式会成为致命缺陷,严重地阻碍职业生涯?华德普与巴特勒归纳出12项职场缺陷的行为模式。  1.总觉得自己不够好这种人虽然聪明、有历练,但是一旦被提拔,反而毫无自信,觉得自己不胜任。此外,他... 查看全文

分享网络2.0

02-19
Blist——基于Web的数据库管理程序
Blist 是一款基于Flash/Flex平台,以Web-Base方式架构在服务器上的SQL数据库管理程序。Blist 同样是一家在今年DEMO大会上崭露头角的创新型企业,他们为用户带来了一款基于Fl... 查看全文

Internet Observation

2007
即将爆发的在线视频之战:在线视频的模式分析
来自Web2.0博客特约编辑Mark Scrimshire  传统出版和消费模式的作用不可否认,有很多这种形式的大型媒体公司,他们不断出品内容,我们消费者则只有被动去接受。我们能掌控的无非是换频道或是... 查看全文

一葉千鳥

01-10
五对页面信息模式
近日梳理遇到的互联网上的各类信息模式,发现大略可以分为五对共十种。互联网门户的频道首页和网络专题页。它们的共同点是流量大,手工更新,不同点是频道首页是领域,网络专题是热点,频道首页是信息高频度持续更新... 查看全文
More Articles
Elanso is a professional online platform which provides translation service for corporate or individule clients, opportunities for translation practice and translation jobs, and translation tool/software-download. Our online translators provide about 186 languages' translation service, including Japanese,Korean, French, German, Spanish, etc, among which, 20,000 are English translators. And some big translation service companies in Shanghai, Beijing, Nanjing also registered here.