Uploaded image for project: 'Hibernate ORM'
  1. Hibernate ORM
  2. HHH-7902

Replace JDBC proxies with a set of contracts/helpers

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.0.CR1, 4.3.0.Beta1
    • Component/s: hibernate-core
    • Labels:
      None
    • Last commented by a user?:
      true

      Description

      Performance benchmarking has shown that our JDBC proxying (AbstractProxyHandler and subclasses) are a big hotspot.

      Most of their provided functionality fall into fairly well-defined steps. Replace as much proxying as possible with new contracts.

      CHANGES MADE
      org.hibernate.engine.jdbc.internal.proxy completely removed
      JdbcResourceRegistry merged into JdbcCoordinator.
      A few pieces of LogicalConnectionImplementer moved into JdbcCoordinator as well.
      StatementPreparerImpl registers the Statement with JdbcCoordinator.
      StatementPreparerImpl logs PreparedStatement and CallableStatement SQL
      Replaced Statement#close and ResultSet#close calls with JdbcCoordinator#release
      Enforced the use of StatementPreparer instead of Connection's createStatement, prepareStatement, and prepareCall
      Created ResultSetExtractor and used it to replace execute/executeUpdate/executeQuery calls on Statement/PreparedStatement/CallableStatement
      ResultSetExtractorImpl registers the ResultSet with JdbcCoordinator.
      ResultSetExtractorImpl logs Statement SQL
      org/hibernate/test/jdbc/proxies tests updated/refactored to test the new apis

        Attachments

          Activity

            People

            • Assignee:
              brmeyer Brett Meyer
              Reporter:
              brmeyer Brett Meyer
              Participants:
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: