⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlexecutor.java

📁 中国移动定位引擎的客户端
💻 JAVA
字号:
package ffcs.db;


/**
 * <p>Title: 短信网关网管接口程序</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (福富软件技术股份有限公司) 2005</p>
 * <p>Company: 福富软件技术股份有限公司</p>
 * @author huangcm
 * @version 1.0
 */
import java.sql.*;


/**
 * Class responsible for executing the SQL
 */
public class SqlExecutor {

    public static final int NO_SKIPPED_RESULTS = 0;


    /**
     * Constant to let us know to include all records
     */
    public static final int NO_MAXIMUM_RESULTS = -999999;


    /**
     *
     * @param conn Connection
     * @param sql String
     * @throws SQLException
     * @return int
     */
    public int executeUpdate(Connection conn, String sql) throws SQLException {

        Statement state = null;
        int rows = 0;
        try {
            state = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
                                         ResultSet.CONCUR_READ_ONLY);
            rows = state.executeUpdate(sql);

        } finally {
            closeStatement(state);
        }
        return rows;
    }

    public ResultSet executeQuery(Connection conn, String sql) throws
            SQLException {
        Statement stat = null;
        ResultSet rs = null;

            stat = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
                                        ResultSet.CONCUR_READ_ONLY);
            rs = stat.executeQuery(sql);


        return rs;
    }


    /**
     *
     * @param conn Connection
     * @param sql String
     * @param callback ResultSetCallback
     * @throws SQLException
     */
    public void executeQuery(Connection conn, String sql,
                             ResultSetCallback callback) throws SQLException {
        executeQuery(conn, sql, 0, 0, 0, callback);
    }


    /**
     * @param conn Connection
     * @param sql String
     * @param skipResults int
     * @param maxResults int
     * @param fetchSize int
     * @param callback ResultSetCallback
     * @throws SQLException
     */
    public void executeQuery(Connection conn, String sql,
                             int skipResults, int maxResults,
                             int fetchSize, ResultSetCallback callback) throws
            SQLException {

        Statement stat = null;
        ResultSet rs = null;

        try {
            stat = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY,
                                        ResultSet.CONCUR_READ_ONLY);
            if (fetchSize != 0) {
                stat.setFetchSize(fetchSize);
            }
            rs = stat.executeQuery(sql);
            handleResults(rs, skipResults, maxResults, callback);

        } finally {

            closeResultSet(rs);

            closeStatement(stat);

        }
    }


    /**
     *
     * @param rs ResultSet
     * @param skipResults int
     * @param maxResults int
     * @param callback ResultSetCallback
     * @throws SQLException
     */
    private void handleResults(ResultSet rs,
                               int skipResults,
                               int maxResults, ResultSetCallback callback) throws
            SQLException {
        if (rs.getType() != ResultSet.TYPE_FORWARD_ONLY) {
            if (skipResults > 0) {
                rs.absolute(skipResults);
            }
        } else {
            for (int i = 0; i < skipResults; i++) {
                if (!rs.next()) {
                    break;
                }
            }
        }
        // Get Results
        int resultsFetched = 0;
        while ((maxResults == SqlExecutor.NO_MAXIMUM_RESULTS ||
                resultsFetched < maxResults) && rs.next()) {
            callback.handleResult(rs);
            resultsFetched++;
        }
    }


    /**
     * @param ps
     */
    private static void closeStatement(Statement stat) {
        if (stat != null) {
            try {
                stat.close();
            } catch (SQLException e) {
                // ignore
            }
        }
    }


    /**
     * @param rs
     */
    private static void closeResultSet(ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                // ignore
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -