Package se.unlogic.standardutils.dao.querys

Source Code of se.unlogic.standardutils.dao.querys.ArrayListQuery

/*******************************************************************************
* Copyright (c) 2010 Robert "Unlogic" Olofsson (unlogic@unlogic.se).
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser Public License v3
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/lgpl-3.0-standalone.html
******************************************************************************/
package se.unlogic.standardutils.dao.querys;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.sql.DataSource;

import se.unlogic.standardutils.dao.BeanResultSetPopulator;
import se.unlogic.standardutils.db.DBUtils;

public class ArrayListQuery<ReturnType> extends PopulatedQuery<ReturnType> {

  public ArrayListQuery(Connection connection, boolean closeConnectionOnExit, String query, BeanResultSetPopulator<ReturnType> bp) throws SQLException {
    super(connection, closeConnectionOnExit, query, bp);
  }

  public ArrayListQuery(DataSource dataSource, boolean closeConnectionOnExit, String query, BeanResultSetPopulator<ReturnType> bp) throws SQLException {
    super(dataSource, closeConnectionOnExit, query, bp);
  }

  public ArrayList<ReturnType> executeQuery() throws SQLException {

    ResultSet rs = null;
    ArrayList<ReturnType> returnTypeList = null;

    try {
      // Send query to database and store results.
      rs = pstmt.executeQuery();

      if (rs.next()) {
        rs.last();
        returnTypeList = new ArrayList<ReturnType>(rs.getRow());
        rs.beforeFirst();

        while (rs.next()) {
          returnTypeList.add(beanPopulator.populate(rs));
        }
      }

      return returnTypeList;

    } catch (SQLException sqle) {
      throw sqle;
    } finally {
      DBUtils.closeResultSet(rs);
      DBUtils.closePreparedStatement(pstmt);

      if (this.closeConnectionOnExit) {
        DBUtils.closeConnection(connection);
      }

      this.closed = true;
    }
  }

  @Override
  protected PreparedStatement getPreparedStatement(String query) throws SQLException {

    return connection.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
  }
}
TOP

Related Classes of se.unlogic.standardutils.dao.querys.ArrayListQuery

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.