gpt4 book ai didi

java - JDBC 驱动程序应该包含在 WAR 中吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:45:11 28 4
gpt4 key购买 nike

我们有一个正在开发的商业软件产品。它支持 Oracle、MySQL 和 SQL*Server 后端(我们也使用 H2 进行测试)。我们使用特定版本的 JDBC 驱动程序针对这些不同的数据库进行集成测试。 Maven 可以很好地处理这一切。

将应用程序打包为 WAR 时,是否可以包含 JDBC 驱动程序?标准做法是什么?

由于我们不知道可以提前使用哪个数据库,因此我们必须将它们全部包括在内。目标 servlet 容器是 Tomcat 和 Jetty,但一些客户也希望在 WebSphere 和 JBoss 中运行。

所以 servlet 包含应用程序服务器并带有它们自己的 JDBC 驱动程序?我们的会不会冲突?另一个问题是我们已经开发和测试了一个版本的驱动程序,如果客户使用另一个版本,我们可能会遇到问题。

目前我们使用 Spring 数据源 bean,但正在为数据源迁移到 JNDI 查找。

最佳答案

So the servlet contains and application servers come with their own JDBC drivers?

有些会(例如 WebLogic)。

Will ours conflict?

他们不应该。不确定在应用程序级别创建独立连接池时是否会选择您的连接池(这完全取决于类加载器委托(delegate)模式)。

Another concern is that we have developed and tested with one version of the driver and if a customer uses another version, we may have problems.

有支持版本的列表。

Currently we use Spring data source beans, but are in the process of moving to JNDI lookup for the datasource.

如果您的意思是使用应用服务器提供的连接池,则驱动程序必须安装在容器级别,而不是应用程序级别。这不知何故结束了讨论。

关于java - JDBC 驱动程序应该包含在 WAR 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3770741/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com