加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

设计模式课程 设计模式精讲 10-2 外观模式源码解析

发布时间:2020-12-15 07:50:13 所属栏目:Java 来源:网络整理
导读:1 源码解析 1.1 源码解析1(jdk中的JDBCUtils工具类) 1.2 源码解析2 1.3 源码解析3 1.4 源码解析4 ? 1 源码解析 1.1 源码解析1 (jdk中的JDBCUtils工具类) jdbc在springJDBC中的封装 ? /** * Close the given JDBC Connection and ignore any thrown excep

1    源码解析

1.1  源码解析1(jdk中的JDBCUtils工具类)

1.2  源码解析2

1.3  源码解析3

1.4  源码解析4

?

1    源码解析

1.1  源码解析1(jdk中的JDBCUtils工具类)

jdbc在springJDBC中的封装

?

/**
     * Close the given JDBC Connection and ignore any thrown exception.
     * This is useful for typical finally blocks in manual JDBC code.
     * @param con the JDBC Connection to close (may be {@code null})
     */
    public static void closeConnection(Connection con) {
        if (con != null) {
            try {
                con.close();
            }
            catch (SQLException ex) {
                logger.debug("Could not close JDBC Connection",ex);
            }
            catch (Throwable ex) {
                // We don‘t trust the JDBC driver: It might throw RuntimeException or Error.
                logger.debug("Unexpected exception on closing JDBC Connection",ex);
            }
        }
    }

    /**
     * Close the given JDBC Statement and ignore any thrown exception.
     * This is useful for typical finally blocks in manual JDBC code.
     * @param stmt the JDBC Statement to close (may be {@code null})
     */
    public static void closeStatement(Statement stmt) {
        if (stmt != null) {
            try {
                stmt.close();
            }
            catch (SQLException ex) {
                logger.trace("Could not close JDBC Statement",ex);
            }
            catch (Throwable ex) {
                // We don‘t trust the JDBC driver: It might throw RuntimeException or Error.
                logger.trace("Unexpected exception on closing JDBC Statement",ex);
            }
        }
    }

    /**
     * Close the given JDBC ResultSet and ignore any thrown exception.
     * This is useful for typical finally blocks in manual JDBC code.
     * @param rs the JDBC ResultSet to close (may be {@code null})
     */
    public static void closeResultSet(ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            }
            catch (SQLException ex) {
                logger.trace("Could not close JDBC ResultSet",ex);
            }
            catch (Throwable ex) {
                // We don‘t trust the JDBC driver: It might throw RuntimeException or Error.
                logger.trace("Unexpected exception on closing JDBC ResultSet",ex);
            }
        }
    }

?

?

?

1.2  源码解析2(mybaties应用的Configuration)

通过封装之后,我们的客户端都有这些功能,这一组接口交给客户端来访问

?

public MetaObject newMetaObject(Object object) {
    return MetaObject.forObject(object,objectFactory,objectWrapperFactory,reflectorFactory);
  }

  public ParameterHandler newParameterHandler(MappedStatement mappedStatement,Object parameterObject,BoundSql boundSql) {
    ParameterHandler parameterHandler = mappedStatement.getLang().createParameterHandler(mappedStatement,parameterObject,boundSql);
    parameterHandler = (ParameterHandler) interceptorChain.pluginAll(parameterHandler);
    return parameterHandler;
  }

  public ResultSetHandler newResultSetHandler(Executor executor,MappedStatement mappedStatement,RowBounds rowBounds,ParameterHandler parameterHandler,ResultHandler resultHandler,BoundSql boundSql) {
    ResultSetHandler resultSetHandler = new DefaultResultSetHandler(executor,mappedStatement,parameterHandler,resultHandler,boundSql,rowBounds);
    resultSetHandler = (ResultSetHandler) interceptorChain.pluginAll(resultSetHandler);
    return resultSetHandler;
  }

?

?

?

?

1.3  源码解析3(在tomcat中的应用)

1.4  源码解析4

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读