Java 类org.hibernate.connection.ConnectionProvider 实例源码

项目:cacheonix-core    文件:FooBarTest.java   
public void testUserProvidedConnection() throws Exception {
    ConnectionProvider dcp = new DriverManagerConnectionProvider();
    dcp.configure( Environment.getProperties() );
    Session s = getSessions().openSession( dcp.getConnection() );
    Transaction tx = s.beginTransaction();
    s.find("from Fo");
    tx.commit();
    Connection c = s.disconnect();
    assertTrue( c!=null );
    s.reconnect(c);
    tx = s.beginTransaction();
    s.find("from Fo");
    tx.commit();
    assertTrue( s.close()==c );
    c.close();
}
项目:vibur-dbcp-hibernate3    文件:ViburDBCPConnectionProviderTest.java   
@Test
public void testSelectStatementWithStatementsCache() throws SQLException {
    Session session = HibernateTestUtils.getSessionFactoryWithStmtCache().openSession();

    ConnectionProvider cp = ((SessionFactoryImplementor) session.getSessionFactory()).getConnectionProvider();
    ViburDBCPDataSource ds = ((ViburDBCPConnectionProvider) cp).getDataSource();

    ConcurrentMap<StatementMethod, StatementHolder> mockedStatementCache = mockStatementCache(ds);

    executeAndVerifySelectInSession(session);
    // resources/hibernate-with-stmt-cache.cfg.xml defines pool with 1 connection only, that's why
    // the second session will get and use the same underlying connection.
    session = HibernateTestUtils.getSessionFactoryWithStmtCache().openSession();
    executeAndVerifySelectInSession(session);

    InOrder inOrder = inOrder(mockedStatementCache);
    inOrder.verify(mockedStatementCache).get(key1.capture());
    inOrder.verify(mockedStatementCache).putIfAbsent(same(key1.getValue()), val1.capture());
    inOrder.verify(mockedStatementCache).get(key2.capture());

    assertEquals(1, mockedStatementCache.size());
    assertTrue(mockedStatementCache.containsKey(key1.getValue()));
    assertEquals(key1.getValue(), key2.getValue());
    assertEquals(AVAILABLE, val1.getValue().state().get());
}
项目:open-cyclos    文件:ApplicationDAOImpl.java   
@Override
public void shutdownDBIfNeeded() {
    SessionFactoryImplementor sessionFactory = (SessionFactoryImplementor) getSessionFactory();
    ConnectionProvider connectionProvider = sessionFactory.getConnectionProvider();
    try {
        Connection connection = connectionProvider.getConnection();
        try {
            String dbName = connection.getMetaData().getDatabaseProductName();
            if (dbName.startsWith("HSQL")) {
                new JDBCWrapper(connection).execute("SHUTDOWN");
                LOG.info("Shutdown on HSQL Database was successful");
            }
        } finally {
            connectionProvider.closeConnection(connection);
        }
    } catch (SQLException e) {
        LOG.warn("Error shutting down database connection", e);
    }
}
项目:incubator-netbeans    文件:CustomJDBCConnectionProvider.java   
@Override
  public <T> T unwrap(Class<T> unwrapType) {
      if (ConnectionProvider.class.equals(unwrapType) ||
              CustomJDBCConnectionProvider.class.isAssignableFrom(unwrapType)) {
          return (T) this;
      } else {
          throw new UnknownUnwrapTypeException( unwrapType );
      }
}
项目:lams    文件:SessionFactoryUtils.java   
/**
 * Determine the DataSource of the given SessionFactory.
 * @param sessionFactory the SessionFactory to check
 * @return the DataSource, or {@code null} if none found
 * @see org.hibernate.engine.SessionFactoryImplementor#getConnectionProvider
 * @see LocalDataSourceConnectionProvider
 */
public static DataSource getDataSource(SessionFactory sessionFactory) {
    if (sessionFactory instanceof SessionFactoryImplementor) {
        ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory).getConnectionProvider();
        if (cp instanceof LocalDataSourceConnectionProvider) {
            return ((LocalDataSourceConnectionProvider) cp).getDataSource();
        }
    }
    return null;
}
项目:spring4-understanding    文件:SessionFactoryUtils.java   
/**
 * Determine the DataSource of the given SessionFactory.
 * @param sessionFactory the SessionFactory to check
 * @return the DataSource, or {@code null} if none found
 * @see org.hibernate.engine.SessionFactoryImplementor#getConnectionProvider
 * @see LocalDataSourceConnectionProvider
 */
public static DataSource getDataSource(SessionFactory sessionFactory) {
    if (sessionFactory instanceof SessionFactoryImplementor) {
        ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory).getConnectionProvider();
        if (cp instanceof LocalDataSourceConnectionProvider) {
            return ((LocalDataSourceConnectionProvider) cp).getDataSource();
        }
    }
    return null;
}
项目:snakerflow    文件:Hibernate3Access.java   
protected Connection getConnection() throws SQLException {
    if (sessionFactory instanceof SessionFactoryImplementor) {
        ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory).getConnectionProvider();
        return cp.getConnection();
    }
    return super.getConnection();
}
项目:class-guard    文件:SessionFactoryUtils.java   
/**
 * Determine the DataSource of the given SessionFactory.
 * @param sessionFactory the SessionFactory to check
 * @return the DataSource, or {@code null} if none found
 * @see org.hibernate.engine.SessionFactoryImplementor#getConnectionProvider
 * @see LocalDataSourceConnectionProvider
 */
public static DataSource getDataSource(SessionFactory sessionFactory) {
    if (sessionFactory instanceof SessionFactoryImplementor) {
        ConnectionProvider cp = ((SessionFactoryImplementor) sessionFactory).getConnectionProvider();
        if (cp instanceof LocalDataSourceConnectionProvider) {
            return ((LocalDataSourceConnectionProvider) cp).getDataSource();
        }
    }
    return null;
}
项目:incubator-netbeans    文件:CustomJDBCConnectionProvider.java   
@Override
 public boolean isUnwrappableAs(Class unwrapType) {
     return ConnectionProvider.class.equals(unwrapType) ||
             CustomJDBCConnectionProvider.class.isAssignableFrom(unwrapType);
}
项目:openbravo-brazil    文件:DalSessionFactory.java   
public ConnectionProvider getConnectionProvider() {
  return ((SessionFactoryImplementor) delegateSessionFactory).getConnectionProvider();
}
项目:communote-server    文件:AbstractLiquibaseDatabaseUpdater.java   
/**
 * @return the {@link ConnectionProvider} to use
 */
private ConnectionProvider getConnectionProvider() {
    return sessionFactoryImplementor.getConnectionProvider();
}
项目:ephesoft    文件:DynamicHibernateDao.java   
/**
 * To get Connection Provider.
 * @return ConnectionProvider
 */
public ConnectionProvider getConnectionProvider() {
    ConnectionProvider connectionProvider = null;
    connectionProvider = ((SessionFactoryImplementor) this.sessionFactory).getConnectionProvider();
    return connectionProvider;
}
项目:cacheonix-core    文件:SettingsFactory.java   
protected ConnectionProvider createConnectionProvider(Properties properties) {
    return ConnectionProviderFactory.newConnectionProvider(properties);
}
项目:cacheonix-core    文件:Settings.java   
public ConnectionProvider getConnectionProvider() {
    return connectionProvider;
}
项目:cacheonix-core    文件:Settings.java   
void setConnectionProvider(ConnectionProvider provider) {
    connectionProvider = provider;
}
项目:cacheonix-core    文件:SuppliedConnectionProviderConnectionHelper.java   
public SuppliedConnectionProviderConnectionHelper(ConnectionProvider provider) {
    this.provider = provider;
}
项目:cacheonix-core    文件:SessionFactoryImpl.java   
public ConnectionProvider getConnectionProvider() {
    return settings.getConnectionProvider();
}
项目:cacheonix-core    文件:NewerPerformanceTest.java   
public void testJdbcOnly() throws Exception {

        ConnectionProvider cp = ConnectionProviderFactory.newConnectionProvider( Environment.getProperties() );

        for ( int n=2; n<4000; n*=2 ) {

            Session s = openSession();
            Simple[] simples = new Simple[n];
            s.delete("from Simple");
            s.flush();
            Serializable[] ids = new Serializable[n];
            for ( int i=0; i<n; i++ ) {
                simples[i] = new Simple();
                simples[i].init();
                simples[i].setCount(i);
                ids[i] = new Long(i);
                s.save(simples[i], ids[i]);
            }
            s.flush();
            s.connection().commit();
            s.close();


            //Now do timings

            Connection c = cp.getConnection();
            long time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j1" );
            long jdbc = System.currentTimeMillis() - time;
            cp.closeConnection(c);

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j2" );
            jdbc += System.currentTimeMillis() - time;
            cp.closeConnection(c);

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j2" );
            jdbc += System.currentTimeMillis() - time;
            cp.closeConnection(c);

            System.out.println( "Objects: " + n + " Direct JDBC: " + jdbc );

        }

        cp.close();
        System.gc();
    }
项目:cacheonix-core    文件:PerformanceTest.java   
public void testSimultaneous() throws Exception {

        ConnectionProvider cp = ConnectionProviderFactory.newConnectionProvider( Environment.getProperties() );

        for ( int n=2; n<4000; n*=2 ) {

            Simple[] simples = new Simple[n];
            Serializable[] ids = new Serializable[n];
            for ( int i=0; i<n; i++ ) {
                simples[i] = new Simple();
                simples[i].init();
                simples[i].setCount(i);
                ids[i] = new Long(i);
            }

            //allow cache to settle

            Session s = openSession();
            hibernate(s, simples, ids, n, "h0");
            s.close();

            Connection c = cp.getConnection();
            directJDBC( c, simples, ids, n, "j0" );
            cp.closeConnection(c);

            s = openSession();
            hibernate(s, simples, ids, n, "h0");
            s.close();

            c = cp.getConnection();
            directJDBC( c, simples, ids, n, "j0" );
            cp.closeConnection(c);

            //Now do timings

            s = openSession();
            long time = System.currentTimeMillis();
            hibernate(s, simples, ids, n, "h1");
            long hiber = System.currentTimeMillis() - time;
            s.close();

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j1" );
            long jdbc = System.currentTimeMillis() - time;
            cp.closeConnection(c);

            s = openSession();
            time = System.currentTimeMillis();
            hibernate(s, simples, ids, n, "h2");
            hiber += System.currentTimeMillis() - time;
            s.close();

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j2" );
            jdbc += System.currentTimeMillis() - time;
            cp.closeConnection(c);

            s = openSession();
            time = System.currentTimeMillis();
            hibernate(s, simples, ids, n, "h2");
            hiber += System.currentTimeMillis() - time;
            s.close();

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j2" );
            jdbc += System.currentTimeMillis() - time;
            cp.closeConnection(c);

            System.out.println( "Objects: " + n + " - Hibernate: " + hiber + "ms / Direct JDBC: " + jdbc + "ms = Ratio: " + ( (float) hiber )/jdbc );

        }

        cp.close();
        System.gc();
    }
项目:cacheonix-core    文件:PerformanceTest.java   
public void testJdbcOnly() throws Exception {

        ConnectionProvider cp = ConnectionProviderFactory.newConnectionProvider( Environment.getProperties() );

        for ( int n=2; n<4000; n*=2 ) {

            Simple[] simples = new Simple[n];
            Serializable[] ids = new Serializable[n];
            for ( int i=0; i<n; i++ ) {
                simples[i] = new Simple();
                simples[i].init();
                simples[i].setCount(i);
                ids[i] = new Long(i);
            }

            //Now do timings

            Connection c = cp.getConnection();
            long time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j1" );
            long jdbc = System.currentTimeMillis() - time;
            cp.closeConnection(c);

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j2" );
            jdbc += System.currentTimeMillis() - time;
            cp.closeConnection(c);

            c = cp.getConnection();
            time = System.currentTimeMillis();
            directJDBC( c, simples, ids, n, "j2" );
            jdbc += System.currentTimeMillis() - time;
            cp.closeConnection(c);

            System.out.println( "Objects: " + n + " Direct JDBC: " + jdbc );

        }

        cp.close();
        System.gc();
    }
项目:cacheonix-core    文件:SessionFactoryImplementor.java   
/**
 * Get the connection provider
 */
public ConnectionProvider getConnectionProvider();