zoukankan      html  css  js  c++  java
  • 偶然发现在java方法中可以定义类

    JdbcTemplate的源码

    注意QueryStatementCallback 是一个类。

    public Object query(final String sql, final ResultSetExtractor rse) throws DataAccessException {
            if (sql == null) {
                throw new InvalidDataAccessApiUsageException("SQL must not be null");
            }
            if (JdbcUtils.countParameterPlaceholders(sql, '?', "'"") > 0) {
                throw new InvalidDataAccessApiUsageException(
                        "Cannot execute [" + sql + "] as a static query: it contains bind variables");
            }
            if (logger.isDebugEnabled()) {
                logger.debug("Executing SQL query [" + sql + "]");
            }
            class QueryStatementCallback implements StatementCallback, SqlProvider {
                public Object doInStatement(Statement stmt) throws SQLException {
                    ResultSet rs = null;
                    try {
                        rs = stmt.executeQuery(sql);
                        ResultSet rsToUse = rs;
                        if (nativeJdbcExtractor != null) {
                            rsToUse = nativeJdbcExtractor.getNativeResultSet(rs);
                        }
                        return rse.extractData(rsToUse);
                    }
                    finally {
                        JdbcUtils.closeResultSet(rs);
                    }
                }
                public String getSql() {
                    return sql;
                }
            }
            return execute(new QueryStatementCallback());
        }
  • 相关阅读:
    SQLServer和Access数据传输简单总结
    Session 详解
    SQL日志文件过大问题的解决方法
    如何删除表中的重复记录?
    HDOJ 3711 Binary Number
    HDOJ 2022
    活动选择问题
    浮点数的比较
    HDOJ 2037
    找最长递增子数列
  • 原文地址:https://www.cnblogs.com/mkl34367803/p/14728947.html
Copyright © 2011-2022 走看看