如何在Hibernate中使用HikariCP?

时间:2017-08-28 22:37:02

标签: java hibernate hikaricp

当我自己使用Hibernate时,我可以做Main.getSession().get(User.class, 1);之类的事情,其中​​getSession()会从会话工厂调用openSession()。但我怎样才能对HikariDataSource做同样的事情呢? Wiki提到了HikariConnectionProvider的一些内容,但没有给出任何例子。

@Bean
public DataSource dataSource() throws SQLException {
    if (dbUrl == null || dbUrl.isEmpty()) {
        return new HikariDataSource();
    } else {
        HikariConfig config = new HikariConfig();
        config.setJdbcUrl(dbUrl);
        return new HikariDataSource(config);
    }
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望Hibernate使用Hikari提供的连接池。如果是这种情况,则SessionFactory有一个方法setDataSourc(...)

@Bean
public LocalSessionFactoryBean sessionFactory() {
    LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
    sessionFactory.setDataSource(dataSource());
    // ...
    return sessionFactory;
}

当您打开会话时,将从Hikari池中借用连接。