Package org.fto.jthink.jdbc.mssql

Source Code of org.fto.jthink.jdbc.mssql.MssqlSQLExecutor

/*
* MssqlSQLExecutor.java  2005-7-1
*
* 版权所有: 自由思考组织(FTO)软件团队 2000-2005, 保留所有权利.
* 这个软件是自由思考组织(FTO)软件团队开发的,如果要使用这个软件,请首先阅读并接受许可协议。
*
* Copyright 2000-2005 FTO Software Team, Inc. All Rights Reserved.
* This software is the proprietary information of FTO Software Team, Inc.
* Use is subject to license terms.
*
* FTO站点:http://www.free-think.org
*/
package org.fto.jthink.jdbc.mssql;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.fto.jthink.exception.JThinkErrorCode;
import org.fto.jthink.exception.JThinkRuntimeException;
import org.fto.jthink.jdbc.JDBCTransaction;
import org.fto.jthink.jdbc.SQL;
import org.fto.jthink.jdbc.SQLExecutor;


/**
* 此类型的实例负责执行SQL语句,针对MS SQL Server数据库。此类型扩展了SQLExecutor类型,
* 并覆盖了executeQuery()和executeStoredProcedure()两个方法,以便执行具有分页功能的SQL语句。
*
* <p><pre><b>
* 历史更新记录:</b>
* 2005-07-01  创建此类型
* </pre></p>
*
*
* @author   wenjian
* @version  1.0
* @since    JThink 1.0
*
*/

public class MssqlSQLExecutor extends SQLExecutor {
     
  /**
   * 创建MssqlSQLExecutor的实例
   *
   * @param transaction JDBC事件
   * @param connId 数据库连接ID
   */
  public MssqlSQLExecutor(JDBCTransaction transaction, String connId){
    super(transaction, connId);
 

  /**
   * 执行查询操作的SQL,比如:Select等操作, 用此查询方法可实现数据分页。
   *
   * @param sql                 查询操作的SQL串
   * @param values             值对象数组,用于填充SQL中的“?”
   * @param startIndex        选择出的结果集的行开始索引
   * @param rowlen            选择出的结果集的行数
   * @param doClazz           数据对象类型,只有采用DataObjectResultMaker时此参数才有意义
   *
   * @return   结果集              
   *
   */
  public Object executeQuery(String sql, Object[] values, int startIndex, int rowlen, Class doClazz) {
    PreparedStatement pstmt = null;
    ResultSet rs = null;
    try {
      executeCommand(sql, values, SQL.SELECT);
      pstmt = prepareStatement(sql);
      if(values!=null){
        for (int i = 0; i < values.length; i++) {
          pstmt.setObject(i + 1, values[i]);
        }
      }
      rs = pstmt.executeQuery();
      return getResultMaker().create(rs, doClazz, startIndex, rowlen);
    }
    catch (SQLException ex) {
      throw new JThinkRuntimeException(JThinkErrorCode.ERRCODE_DB_EXEC_SQL_EXCEPTION, ex);
    }
    finally {
      releaseResultSet(rs);
      releasePreparedStatement(pstmt);
    }
  }

}
TOP

Related Classes of org.fto.jthink.jdbc.mssql.MssqlSQLExecutor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.