
metridoc.camel.component.sqlplus.StreamingJdbcTemplate Maven / Gradle / Ivy
/*
* Copyright 2010 Trustees of the University of Pennsylvania Licensed under the
* Educational Community License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.osedu.org/licenses/ECL-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS IS"
* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package metridoc.camel.component.sqlplus;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceUtils;
import java.sql.SQLException;
import java.sql.Statement;
/**
* mostly copied from the original JDBC template. The main difference is that fetch sizes < 0 are allowed
* so databases like mysql can do streaming. This was inspired by
* http://javasplitter.blogspot.com/2009/10/pimp-ma-jdbc-resultset.html
*
* @author Tommy Barker
*/
public class StreamingJdbcTemplate extends JdbcTemplate {
@Override
protected void applyStatementSettings(Statement stmt) throws SQLException {
int fetchSize = getFetchSize();
stmt.setFetchSize(fetchSize);
int maxRows = getMaxRows();
if (maxRows > 0) {
stmt.setMaxRows(maxRows);
}
DataSourceUtils.applyTimeout(stmt, getDataSource(), getQueryTimeout());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy