Class JDBCConnectionPool


  • public class JDBCConnectionPool
    extends java.lang.Object
    Really simple connection pool for JDBC databases.

    Use:

     JDBCConnectionPool pool = new JDBCConnectionPool(jdbcURL, userName, passwd);
     ...
     Connection conn = pool.takeConnection();
     // do stuff with conn
     pool.putConnection(conn);
     // don't use conn from here on
    
     Statement stmt = pool.takeStatement();
     // do stuff with stmt
     pool.putStatement(stmt);
     // don't do anything else with stmt
     

    It is not a good idea to call close() on a connection you get from a pool. This would prevent it from being re-used. Also, we have seen some odd behavior with connections involved in transactions being re-used. We have not yet identified exactly how you can safely use a pooled connection for transaction-safe code.

    Note: We should probably be moving to a propper connection pool API. Let's standardise on one soon.

    Author:
    Thomas Down, Matthew Pocock
    • Constructor Summary

      Constructors 
      Constructor Description
      JDBCConnectionPool​(java.lang.String url)  
      JDBCConnectionPool​(java.lang.String url, java.lang.String user, java.lang.String pass)  
    • Constructor Detail

      • JDBCConnectionPool

        public JDBCConnectionPool​(java.lang.String url,
                                  java.lang.String user,
                                  java.lang.String pass)
    • Method Detail

      • takeConnection

        public java.sql.Connection takeConnection()
                                           throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • putConnection

        public void putConnection​(java.sql.Connection c)
                           throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • takeStatement

        public java.sql.Statement takeStatement()
                                         throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • putStatement

        public void putStatement​(java.sql.Statement st)
                          throws java.sql.SQLException
        Throws:
        java.sql.SQLException