使用 hibernate 和 netbeans 动态数据源

Dynamically datasource with hibernate and netbeans

如何创建正在加载服务器配置中设置的 jndi 数据源的 Web 应用程序项目?我想让 Web 应用程序独立于服务器和数据库。可以吗

  1. 您在 web/application 服务器中创建数据源并通过 JNDI

    公开它
  2. 你配置如下hibernate属性:

     <property name="hibernate.connection.datasource">java:comp/env/jdbc/MyDataSource</p>
    

通过这种方式,应用程序与 JNDI 提供程序分离。甚至可以使用 Maven 属性 配置 JNDI url,因此切换到应用服务器(使用不同的 JNDI 资源模式)只是添加新的 Maven 配置文件的问题。

一个更好的方法是 set up the DataSource in your application configuration

@Autowired
private DataSource dataSource;
...
properties.put("hibernate.connection.datasource", dataSource);

这样你就可以使用任何 connection pooling framework, like the fastest connection pooling framework, HikariCP.

您甚至可以设置 DataSource 代理,例如:

  • datasource-proxy,使用 PreparedStatement 参数
  • 记录 SQL 查询
  • FlexyPool,以监视连接池使用情况并使用自适应策略调整池大小