Hibernate 5 + HikariCP + MySQL

我使用Hibernate 5和MySQL数据库开始了一个项目。 在这个项目之前,我一直在使用Hibernate 4,PostgreSQL和C3P0连接池。

现在,我想用Hibernate 5来使用HikariCP,因为它看起来很有前途。

这是我的hibernate的IVY配置部分:

 <!DOCTYPE ivy-module [         ]> ...      

我的DAO看起来像这样:

 public class PtDao { private Logger logger = LoggerFactory.getLogger(PtDao.class); private static PtDao instance; private Configuration cfg; private static ServiceRegistry serviceRegistry; private SessionFactory factory; private Transaction tx; private static Session session; private PtDao(){ prepararConexionConHikariCP(); } private void prepararConexionConHikariCP(){ try{ cfg = new Configuration(); cfg.setProperty("hibernate.hbm2ddl.auto", "update"); cfg.setProperty("hibernate.transaction.auto_close_session", "true"); cfg.setProperty("hibernate.connection.autocommit", "false"); cfg.setProperty("hibernate.connection.provider_class", "com.zaxxer.hikari.hibernate.HikariConnectionProvider"); cfg.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); cfg.setProperty("hibernate.hikari.dataSourceClassName", "com.mysql.jdbc.jdbc2.optional.MysqlDataSource"); // MySQL Servidor Linux cfg.setProperty("hibernate.hikari.dataSource.url", "jdbc:mysql://192.168.1.101:3306/averiassae"); cfg.setProperty("hibernate.hikari.dataSource.user", "root"); cfg.setProperty("hibernate.hikari.dataSource.password", "XXXXX"); cfg.setProperty("hibernate.hikari.dataSource.cachePrepStmts", "true"); cfg.setProperty("hibernate.hikari.dataSource.prepStmtCacheSize", "250"); cfg.setProperty("hibernate.hikari.dataSource.prepStmtCacheSqlLimit", "2048"); //cfg.setProperty("hibernate.hikari.idleTimeout", "300000"); //cfg.setProperty("hibernate.hikari.minimumIdle", "10"); //cfg.setProperty("hibernate.hikari.maximumPoolSize", "20"); cfg.setProperty("hibernate.show_sql", "true"); cfg.setProperty("hibernate.format_sql", "true"); cfg.setProperty("hibernate.generate_statistics", "true"); anyadirPersistencia(); StandardServiceRegistryBuilder serviceRegistryBuilder = new StandardServiceRegistryBuilder(); serviceRegistryBuilder.applySettings(cfg.getProperties()); serviceRegistry = serviceRegistryBuilder.build(); factory = cfg.buildSessionFactory(serviceRegistry); this.openSession(); } catch (HibernateException e) { logger.error("Error HibernateException (" + e.getClass() + ") en PtDao(): " + e.getMessage() + ". Causa: " + e.getCause()); e.printStackTrace(); } } private void anyadirPersistencia() { cfg.addAnnotatedClass(Operador.class); cfg.addAnnotatedClass(Averia.class); } ... 

看起来Hikari配置得很好,但是一旦有了新的连接出现在MySQL Workbench的Administration-Client连接窗口中,即使应用程序已经停止……

我的问题是:

1)Hibernate和Hikari是否配置良好?
2)管理这些连接的任何线索?

谢谢你的帮助