Package com.lingbobu.flashdb.transfer.sqlfunc

Source Code of com.lingbobu.flashdb.transfer.sqlfunc.DbQuery

package com.lingbobu.flashdb.transfer.sqlfunc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashSet;
import java.util.Set;

import javax.sql.DataSource;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;

import com.lingbobu.flashdb.transfer.impl.InputDbQuery;

public class DbQuery implements BeanFactoryAware {
 
  private BeanFactory beanFactory;

  @Override
  public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
    this.beanFactory = beanFactory;
  }
 
  public InputDbQuery call(String dataSourceBean, String dataSourceSql) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    return new InputDbQuery(dataSource, dataSourceSql, new Object[0]);
  }
 
  public InputDbQuery call(String dataSourceBean, String dataSourceSql, Object dataSourceSqlParams1) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    return new InputDbQuery(dataSource, dataSourceSql, new Object[]{dataSourceSqlParams1});
  }
 
  public InputDbQuery call(String dataSourceBean, String dataSourceSql, Object dataSourceSqlParams1, Object dataSourceSqlParams2) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    return new InputDbQuery(dataSource, dataSourceSql, new Object[]{dataSourceSqlParams1,dataSourceSqlParams2});
  }
 
  public Object queryForObject(String dataSourceBean, String sql) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    return jdbcTemplate.queryForObject(sql, Object.class);
  }
 
  public Set<Object> queryForSet(String dataSourceBean, String sql) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    final Set<Object> result = new HashSet<Object>();
    jdbcTemplate.query(sql, new RowCallbackHandler(){
      @Override
      public void processRow(ResultSet rs) throws SQLException {
        Object value = rs.getObject(1);
        if (value == null) return;
        result.add(value);
      }
    });
    return result;
  }
 
  public void executeSql(String dataSourceBean, String sql) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    jdbcTemplate.execute(sql);
  }
 
  public void executeSql(String dataSourceBean, String sql, Object dataSourceSqlParams1) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    jdbcTemplate.update(sql, new Object[]{dataSourceSqlParams1});
  }
 
  public void executeSql(String dataSourceBean, String sql, Object dataSourceSqlParams1, Object dataSourceSqlParams2) {
    DataSource dataSource = beanFactory.getBean(dataSourceBean, DataSource.class);
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    jdbcTemplate.update(sql, new Object[]{dataSourceSqlParams1,dataSourceSqlParams2});
  }
}
TOP

Related Classes of com.lingbobu.flashdb.transfer.sqlfunc.DbQuery

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.