org.apache.ibatis.datasource.pooled
Class PooledDataSource

java.lang.Object
  extended by org.apache.ibatis.datasource.pooled.PooledDataSource
All Implemented Interfaces:
Wrapper, CommonDataSource, DataSource

public class PooledDataSource
extends Object
implements DataSource

This is a simple, synchronous, thread-safe database connection pool.


Field Summary
protected  int poolMaximumActiveConnections
           
protected  int poolMaximumCheckoutTime
           
protected  int poolMaximumIdleConnections
           
protected  int poolPingConnectionsNotUsedFor
           
protected  boolean poolPingEnabled
           
protected  String poolPingQuery
           
protected  int poolTimeToWait
           
 
Constructor Summary
PooledDataSource()
           
PooledDataSource(ClassLoader driverClassLoader, String driver, String url, Properties driverProperties)
           
PooledDataSource(ClassLoader driverClassLoader, String driver, String url, String username, String password)
           
PooledDataSource(String driver, String url, Properties driverProperties)
           
PooledDataSource(String driver, String url, String username, String password)
           
 
Method Summary
protected  void finalize()
           
 void forceCloseAll()
          Closes all active and idle connections in the pool
 Connection getConnection()
           
 Connection getConnection(String username, String password)
           
 Integer getDefaultTransactionIsolationLevel()
           
 String getDriver()
           
 Properties getDriverProperties()
           
 int getLoginTimeout()
           
 PrintWriter getLogWriter()
           
 String getPassword()
           
 int getPoolMaximumActiveConnections()
           
 int getPoolMaximumCheckoutTime()
           
 int getPoolMaximumIdleConnections()
           
 int getPoolPingConnectionsNotUsedFor()
           
 String getPoolPingQuery()
           
 PoolState getPoolState()
           
 int getPoolTimeToWait()
           
 String getUrl()
           
 String getUsername()
           
 boolean isAutoCommit()
           
 boolean isPoolPingEnabled()
           
 boolean isWrapperFor(Class<?> iface)
           
protected  boolean pingConnection(org.apache.ibatis.datasource.pooled.PooledConnection conn)
          Method to check to see if a connection is still usable
protected  void pushConnection(org.apache.ibatis.datasource.pooled.PooledConnection conn)
           
 void setDefaultAutoCommit(boolean defaultAutoCommit)
           
 void setDefaultTransactionIsolationLevel(Integer defaultTransactionIsolationLevel)
           
 void setDriver(String driver)
           
 void setDriverProperties(Properties driverProps)
           
 void setLoginTimeout(int loginTimeout)
           
 void setLogWriter(PrintWriter logWriter)
           
 void setPassword(String password)
           
 void setPoolMaximumActiveConnections(int poolMaximumActiveConnections)
          The maximum number of active connections
 void setPoolMaximumCheckoutTime(int poolMaximumCheckoutTime)
          The maximum time a connection can be used before it *may* be given away again.
 void setPoolMaximumIdleConnections(int poolMaximumIdleConnections)
          The maximum number of idle connections
 void setPoolPingConnectionsNotUsedFor(int milliseconds)
          If a connection has not been used in this many milliseconds, ping the database to make sure the connection is still good.
 void setPoolPingEnabled(boolean poolPingEnabled)
          Determines if the ping query should be used.
 void setPoolPingQuery(String poolPingQuery)
          The query to be used to check a connection
 void setPoolTimeToWait(int poolTimeToWait)
          The time to wait before retrying to get a connection
 void setUrl(String url)
           
 void setUsername(String username)
           
<T> T
unwrap(Class<T> iface)
           
static Connection unwrapConnection(Connection conn)
          Unwraps a pooled connection to get to the 'real' connection
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

poolMaximumActiveConnections

protected int poolMaximumActiveConnections

poolMaximumIdleConnections

protected int poolMaximumIdleConnections

poolMaximumCheckoutTime

protected int poolMaximumCheckoutTime

poolTimeToWait

protected int poolTimeToWait

poolPingQuery

protected String poolPingQuery

poolPingEnabled

protected boolean poolPingEnabled

poolPingConnectionsNotUsedFor

protected int poolPingConnectionsNotUsedFor
Constructor Detail

PooledDataSource

public PooledDataSource()

PooledDataSource

public PooledDataSource(String driver,
                        String url,
                        String username,
                        String password)

PooledDataSource

public PooledDataSource(String driver,
                        String url,
                        Properties driverProperties)

PooledDataSource

public PooledDataSource(ClassLoader driverClassLoader,
                        String driver,
                        String url,
                        String username,
                        String password)

PooledDataSource

public PooledDataSource(ClassLoader driverClassLoader,
                        String driver,
                        String url,
                        Properties driverProperties)
Method Detail

getConnection

public Connection getConnection()
                         throws SQLException
Specified by:
getConnection in interface DataSource
Throws:
SQLException

getConnection

public Connection getConnection(String username,
                                String password)
                         throws SQLException
Specified by:
getConnection in interface DataSource
Throws:
SQLException

setLoginTimeout

public void setLoginTimeout(int loginTimeout)
                     throws SQLException
Specified by:
setLoginTimeout in interface CommonDataSource
Throws:
SQLException

getLoginTimeout

public int getLoginTimeout()
                    throws SQLException
Specified by:
getLoginTimeout in interface CommonDataSource
Throws:
SQLException

setLogWriter

public void setLogWriter(PrintWriter logWriter)
                  throws SQLException
Specified by:
setLogWriter in interface CommonDataSource
Throws:
SQLException

getLogWriter

public PrintWriter getLogWriter()
                         throws SQLException
Specified by:
getLogWriter in interface CommonDataSource
Throws:
SQLException

setDriver

public void setDriver(String driver)

setUrl

public void setUrl(String url)

setUsername

public void setUsername(String username)

setPassword

public void setPassword(String password)

setDefaultAutoCommit

public void setDefaultAutoCommit(boolean defaultAutoCommit)

setDefaultTransactionIsolationLevel

public void setDefaultTransactionIsolationLevel(Integer defaultTransactionIsolationLevel)

setDriverProperties

public void setDriverProperties(Properties driverProps)

setPoolMaximumActiveConnections

public void setPoolMaximumActiveConnections(int poolMaximumActiveConnections)
The maximum number of active connections

Parameters:
poolMaximumActiveConnections - The maximum number of active connections

setPoolMaximumIdleConnections

public void setPoolMaximumIdleConnections(int poolMaximumIdleConnections)
The maximum number of idle connections

Parameters:
poolMaximumIdleConnections - The maximum number of idle connections

setPoolMaximumCheckoutTime

public void setPoolMaximumCheckoutTime(int poolMaximumCheckoutTime)
The maximum time a connection can be used before it *may* be given away again.

Parameters:
poolMaximumCheckoutTime - The maximum time

setPoolTimeToWait

public void setPoolTimeToWait(int poolTimeToWait)
The time to wait before retrying to get a connection

Parameters:
poolTimeToWait - The time to wait

setPoolPingQuery

public void setPoolPingQuery(String poolPingQuery)
The query to be used to check a connection

Parameters:
poolPingQuery - The query

setPoolPingEnabled

public void setPoolPingEnabled(boolean poolPingEnabled)
Determines if the ping query should be used.

Parameters:
poolPingEnabled - True if we need to check a connection before using it

setPoolPingConnectionsNotUsedFor

public void setPoolPingConnectionsNotUsedFor(int milliseconds)
If a connection has not been used in this many milliseconds, ping the database to make sure the connection is still good.

Parameters:
milliseconds - the number of milliseconds of inactivity that will trigger a ping

getDriver

public String getDriver()

getUrl

public String getUrl()

getUsername

public String getUsername()

getPassword

public String getPassword()

isAutoCommit

public boolean isAutoCommit()

getDefaultTransactionIsolationLevel

public Integer getDefaultTransactionIsolationLevel()

getDriverProperties

public Properties getDriverProperties()

getPoolMaximumActiveConnections

public int getPoolMaximumActiveConnections()

getPoolMaximumIdleConnections

public int getPoolMaximumIdleConnections()

getPoolMaximumCheckoutTime

public int getPoolMaximumCheckoutTime()

getPoolTimeToWait

public int getPoolTimeToWait()

getPoolPingQuery

public String getPoolPingQuery()

isPoolPingEnabled

public boolean isPoolPingEnabled()

getPoolPingConnectionsNotUsedFor

public int getPoolPingConnectionsNotUsedFor()

forceCloseAll

public void forceCloseAll()
Closes all active and idle connections in the pool


getPoolState

public PoolState getPoolState()

pushConnection

protected void pushConnection(org.apache.ibatis.datasource.pooled.PooledConnection conn)
                       throws SQLException
Throws:
SQLException

pingConnection

protected boolean pingConnection(org.apache.ibatis.datasource.pooled.PooledConnection conn)
Method to check to see if a connection is still usable

Parameters:
conn - - the connection to check
Returns:
True if the connection is still usable

unwrapConnection

public static Connection unwrapConnection(Connection conn)
Unwraps a pooled connection to get to the 'real' connection

Parameters:
conn - - the pooled connection to unwrap
Returns:
The 'real' connection

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable

unwrap

public <T> T unwrap(Class<T> iface)
         throws SQLException
Specified by:
unwrap in interface Wrapper
Throws:
SQLException

isWrapperFor

public boolean isWrapperFor(Class<?> iface)
                     throws SQLException
Specified by:
isWrapperFor in interface Wrapper
Throws:
SQLException


Copyright © 2010-2011 MyBatis.org. All Rights Reserved.