跨大型java项目的所有模块设置数据库连接

跨大型java项目的所有模块设置数据库连接,java,database,servlets,web-applications,web,Java,Database,Servlets,Web Applications,Web,在一个非常大的项目中,我们在哪里设置数据库连接,以便它在所有模块中都可用 假设要求如下所示: LoginPage.html->LoginServlet.java->LoginService.java==>使用DB帮助检查凭据 现在,由于实际凭证存储在DB中,我们在哪里设置数据库以便所有模块都可以使用连接 在大型项目中,是在需要时建立数据库连接,还是在应用程序运行时设置数据库连接,并使其在所有模块中都可用 如果所有模块(需要DB连接)都可以使用DB连接,那么这是如何实现的 感谢您的帮助和投入。因为

在一个非常大的项目中,我们在哪里设置数据库连接,以便它在所有模块中都可用

假设要求如下所示:

LoginPage.html->LoginServlet.java->LoginService.java==>使用DB帮助检查凭据

现在,由于实际凭证存储在DB中,我们在哪里设置数据库以便所有模块都可以使用连接

在大型项目中,是在需要时建立数据库连接,还是在应用程序运行时设置数据库连接,并使其在所有模块中都可用

如果所有模块(需要DB连接)都可以使用DB连接,那么这是如何实现的


感谢您的帮助和投入。

因为您没有使用IoC方法(Spring),所以另一种选择是使用一个静态类(或单例)来引用数据源。无论何时,只要从该类获取连接:

public class JdbcUtils{

    private static DataSource dataSource;

    static{
     dataSource = new DB2SimpleDataSource();   
     dataSource.setDatabaseName("DBNAME");
     dataSource.setServerName("xxx.xxx.xxx.xxx");
     dataSource.setPortNumber(447);
     dataSource.setUser("USER");
     dataSource.setPassword("PASS");
     dataSource.setDriverType(4);
     dataSource.setCurrentSchema("SCHEMA");
         //OR even better get the DataSource through JNDI lookup if defined on server
    }

    public static Connection getConnection() throws SQLException{
         return dataSource.getConnection()
    }
}

在服务器中创建连接池,并在需要时使用lookup调用db服务。@AnshuKunal:谢谢您的输入,有关于如何执行此操作的url/链接吗?@AnshuKunal或使用类似c3po或bone cp的数据库连接池库,并将其配置为创建连接并从中检索连接,因此,不需要在服务器中进行任何进一步的配置。因为这个问题的答案取决于您的运行时环境。您使用什么作为servlet容器?什么版本?您使用Spring框架吗?CDI?单例在这里不是合适的解决方案。从未。如果我有web应用程序,比如web容器中的应用程序,这种方法会起作用吗;如何将其部署到应用服务器中,以便在AS启动时加载此模块/服务?@LuiggiMendoza:您能建议我们在真正的大型项目中做些什么吗。谢谢lot@vipinkoul我是在对你的问题的评论中这样做的,作为对AnshuKunal的答复。结果是一样的:使用数据库连接池。由应用程序的设计者定义其创建和使用:通过应用程序服务器中的配置或手动配置。@LuiggiMendoze为什么singleton不是正确的方法??那么完全基于单例的Spring框架呢??