Class SimpleDataSource

java.lang.Object
com.ibatis.common.jdbc.SimpleDataSource
All Implemented Interfaces:
Wrapper, CommonDataSource, DataSource

public class SimpleDataSource extends Object implements DataSource
This is a simple, synchronous, thread-safe database connection pool.

REQUIRED PROPERTIES ------------------- JDBC.Driver JDBC.ConnectionURL JDBC.Username JDBC.Password

Pool.MaximumActiveConnections Pool.MaximumIdleConnections Pool.MaximumCheckoutTime Pool.TimeToWait Pool.PingQuery Pool.PingEnabled Pool.PingConnectionsOlderThan Pool.PingConnectionsNotUsedFor Pool.QuietMode

  • Constructor Details

    • SimpleDataSource

      public SimpleDataSource(Map props)
      Constructor to allow passing in a map of properties for configuration.
      Parameters:
      props - - the configuration parameters
  • Method Details

    • getConnection

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

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

      public void setLoginTimeout(int loginTimeout) throws SQLException
      Specified by:
      setLoginTimeout in interface CommonDataSource
      Specified by:
      setLoginTimeout in interface DataSource
      Throws:
      SQLException
      See Also:
    • getLoginTimeout

      public int getLoginTimeout() throws SQLException
      Specified by:
      getLoginTimeout in interface CommonDataSource
      Specified by:
      getLoginTimeout in interface DataSource
      Throws:
      SQLException
      See Also:
    • setLogWriter

      public void setLogWriter(PrintWriter logWriter) throws SQLException
      Specified by:
      setLogWriter in interface CommonDataSource
      Specified by:
      setLogWriter in interface DataSource
      Throws:
      SQLException
      See Also:
    • getLogWriter

      public PrintWriter getLogWriter() throws SQLException
      Specified by:
      getLogWriter in interface CommonDataSource
      Specified by:
      getLogWriter in interface DataSource
      Throws:
      SQLException
      See Also:
    • getPoolPingConnectionsNotUsedFor

      public int getPoolPingConnectionsNotUsedFor()
      If a connection has not been used in this many milliseconds, ping the database to make sure the connection is still good.
      Returns:
      the number of milliseconds of inactivity that will trigger a ping
    • getJdbcDriver

      public String getJdbcDriver()
      Getter for the name of the JDBC driver class used.
      Returns:
      The name of the class
    • getJdbcUrl

      public String getJdbcUrl()
      Getter of the JDBC URL used.
      Returns:
      The JDBC URL
    • getJdbcUsername

      public String getJdbcUsername()
      Getter for the JDBC user name used.
      Returns:
      The user name
    • getJdbcPassword

      public String getJdbcPassword()
      Getter for the JDBC password used.
      Returns:
      The password
    • getPoolMaximumActiveConnections

      public int getPoolMaximumActiveConnections()
      Getter for the maximum number of active connections.
      Returns:
      The maximum number of active connections
    • getPoolMaximumIdleConnections

      public int getPoolMaximumIdleConnections()
      Getter for the maximum number of idle connections.
      Returns:
      The maximum number of idle connections
    • getPoolMaximumCheckoutTime

      public int getPoolMaximumCheckoutTime()
      Getter for the maximum time a connection can be used before it *may* be given away again.
      Returns:
      The maximum time
    • getPoolTimeToWait

      public int getPoolTimeToWait()
      Getter for the time to wait before retrying to get a connection.
      Returns:
      The time to wait
    • getPoolPingQuery

      public String getPoolPingQuery()
      Getter for the query to be used to check a connection.
      Returns:
      The query
    • isPoolPingEnabled

      public boolean isPoolPingEnabled()
      Getter to tell if we should use the ping query.
      Returns:
      True if we need to check a connection before using it
    • getPoolPingConnectionsOlderThan

      public int getPoolPingConnectionsOlderThan()
      Getter for the age of connections that should be pinged before using.
      Returns:
      The age
    • getRequestCount

      public long getRequestCount()
      Getter for the number of connection requests made.
      Returns:
      The number of connection requests made
    • getAverageRequestTime

      public long getAverageRequestTime()
      Getter for the average time required to get a connection to the database.
      Returns:
      The average time
    • getAverageWaitTime

      public long getAverageWaitTime()
      Getter for the average time spent waiting for connections that were in use.
      Returns:
      The average time
    • getHadToWaitCount

      public long getHadToWaitCount()
      Getter for the number of requests that had to wait for connections that were in use.
      Returns:
      The number of requests that had to wait
    • getBadConnectionCount

      public long getBadConnectionCount()
      Getter for the number of invalid connections that were found in the pool.
      Returns:
      The number of invalid connections
    • getClaimedOverdueConnectionCount

      public long getClaimedOverdueConnectionCount()
      Getter for the number of connections that were claimed before they were returned.
      Returns:
      The number of connections
    • getAverageOverdueCheckoutTime

      public long getAverageOverdueCheckoutTime()
      Getter for the average age of overdue connections.
      Returns:
      The average age
    • getAverageCheckoutTime

      public long getAverageCheckoutTime()
      Getter for the average age of a connection checkout.
      Returns:
      The average age
    • getStatus

      public String getStatus()
      Returns the status of the connection pool.
      Returns:
      The status
    • forceCloseAll

      public void forceCloseAll()
      Closes all of the connections in the pool.
    • 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
    • getParentLogger

      public Logger getParentLogger() throws SQLFeatureNotSupportedException
      Specified by:
      getParentLogger in interface CommonDataSource
      Throws:
      SQLFeatureNotSupportedException
    • 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