如何在 Hibernate 中使用 HikariCP?
how to utilize HikariCP with Hibernate?
当我使用 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);
}
}
如果我没理解错的话,你希望 Hibernate 使用 Hikari
提供的连接池。如果是这样,那么 SessionFactory 有一个方法 setDataSourc(...)
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
// ...
return sessionFactory;
}
当您打开一个会话时,将从 Hikari 池中借用一个连接。
当我使用 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);
}
}
如果我没理解错的话,你希望 Hibernate 使用 Hikari
提供的连接池。如果是这样,那么 SessionFactory 有一个方法 setDataSourc(...)
@Bean
public LocalSessionFactoryBean sessionFactory() {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
// ...
return sessionFactory;
}
当您打开一个会话时,将从 Hikari 池中借用一个连接。