zoukankan      html  css  js  c++  java
  • templet模式

    package template;

    import java.sql.Connection;
    import java.sql.ResultSet;

    /**
    * Created by marcopan on 17/9/26.
    */
    public abstract class QueryRunner {
    public abstract Connection createConnection();

    public abstract String createSQL();

    public abstract ResultSet runSQL(Connection conn, String sql);

    public ResultSet run() throws Exception {
    Connection conn = null;
    String sql = "";
    try {
    conn = this.createConnection();
    sql = this.createSQL();
    return runSQL(conn, sql);
    } finally {
    if (conn != null) {
    conn.close();
    }
    }
    }
    }

    package template;

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    /**
    * Created by marcopan on 17/9/26.
    */
    public class OracleQueryRunner extends QueryRunner {

    @Override
    public Connection createConnection() {
    System.out.println("createConnection from OracleQueryRunner");
    return null;
    }

    @Override
    public String createSQL() {
    return "createSQL from OracleQueryRunner";
    }

    @Override
    public ResultSet runSQL(Connection conn, String sql) {
    System.out.println("runSQL from OracleQueryRunner");
    Statement st = null;
    try {
    st = conn.createStatement();
    return st.executeQuery(sql);
    } catch (SQLException e) {
    e.printStackTrace();
    } finally {
    if (st != null) {
    try {
    st.close();
    } catch (SQLException e) {
    e.printStackTrace();
    }
    }
    }
    return null;
    }
    }


    待补充:spring中的JdbcTemplate中用到的模板模式
  • 相关阅读:
    Kali Linux软件更新日报20190622
    Maltego更新到4.2.4.12374
    Kali Linux又增加一个顶级域名kali.download
    Nessus提示API Disabled错误
    数据包分析中Drop和iDrop的区别
    快速识别Hash加密方式hashid
    识别哈希算法类型hash-identifier
    vue实现前端导出excel表格
    vue自动化单元测试
    Mock制作假数据
  • 原文地址:https://www.cnblogs.com/panning/p/7668903.html
Copyright © 2011-2022 走看看