如果我有一个设置,我需要在单个Java程序中跨几个不同的数据库环境运行一些SQL,有没有办法配置连接池来实现这个目标?
当我说几个不同的数据库环境时,我的意思是我有相同环境的几个不同版本(登台,开发,单元测试,预生产等)。我想创建一些可以针对脚本日志记录表跨每个环境运行相同SQL查询的内容,以确保每个环境都针对它们运行相同的脚本。我们遇到的问题是环境不同步而且发生了不好的事情。虽然我们正在改进尝试减少此过程的过程,但还需要一个工具,以便我们检查实际运行的内容。
目前我们有一个池属性,它传入指向每个环境connection.properties文件的URL。这适用于当前的连接池,但不确定这是否适用于多个数据库。
答案 0 :(得分:0)
如果需要同时连接到许多不同的数据库,则应为每个数据库使用不同的连接池。对于不同的数据库使用相同的池是没有任何意义的,因为与一个数据库的连接将永远不能被重用于另一个数据库。
如果需要根据外部配置(例如命令行,属性文件)连接到其他数据库,则应根据环境设置安排使用不同的连接字符串。
答案 1 :(得分:0)
您的应用服务器是什么?最佳解决方案是将一些符号连接池名称“硬编码”到应用程序中。然后,您可以在每个环境中使用相同的签名版本的.jar / .war / .ear文件。
要命名真实数据库,您可以在应用程序服务器级别使用JNDI映射。或者你也可以使用tnsnames.ora / sqlnet.ora(默认域)映射,因为这是在Oracle世界中如何管理它的常用方法。