package jef.database.innerpool;
import java.sql.SQLException;
import javax.sql.DataSource;
import jef.common.pool.PoolStatus;
/**
* 最基本的连接池
* @author jiyi
*
*/
public interface IPool<T> {
/**
* 获取连接
*
* 注意:这个版本开始,连接池不再负责设置AutoCommit的状态
* @return
* @throws SQLException
*/
public T poll() throws SQLException;
/**
* 归还连接
* @param conn
* @throws SQLException
*/
public void offer(T conn);
/**
* 查询状态
* @return
*/
public PoolStatus getStatus();
/**
* 获得数据源
* @return
*/
DataSource getDatasource();
/**
* 收缩,关闭多余的连接。具体实现取决于实现内部。
* 这个方法是让连接池尽量少占数据库资源
*/
public void closeConnectionTillMin();
/**
* 关闭连接池,包括释放其中全部的连接
*/
void close() throws SQLException;
}