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中用到的模板模式
  • 相关阅读:
    Java排序算法之归并排序
    Java多线程学习笔记(四)——Thread类中方法介绍
    大数据平台搭建:Hadoop
    np.arrange用法
    Pandas中DateFrame修改列名
    python .loc vs .iloc区别
    The categories of Reinforcement Learning 强化学习分类
    python3.6安装总结
    梯度下降法与牛顿下降法速度的比较
    My SQL 和SQL Server区别
  • 原文地址:https://www.cnblogs.com/panning/p/7668903.html
Copyright © 2011-2022 走看看