存储数据库配置参数的最佳方法?

时间:2011-04-14 08:41:30

标签: gwt servlets configuration gwt-rpc

我正在开发一个Web应用程序。 Web应用程序需要访问Patient数据库,该数据库现在是一个简单的MySQL数据库,但将来可能会被其他一些数据库(或数据源)替换。目前,所有内容都是硬编码的,但我想有一些方法来配置数据库连接(即数据库URL,用户,密码等)。

什么是简单直接的解决方案?如果我可以通过简单编辑文件来更改配置,那将是件好事。

我看到有Properties API以及Preferences。或者是否有一些关于servlets / web应用程序的习惯用法?

2 个答案:

答案 0 :(得分:4)

servlet是Web应用程序的一部分,此Web应用程序部署在Java EE容器(Tomcat,WebLogic等)中。

获取数据库连接的标准方法是使用JNDI获取DataSource实例,并询问与此DataSource的连接。大多数情况下,DataSource将汇集数据库连接以避免创建和关闭太多连接,因此速度更快:

Context initCtx = new InitialContext();
DataSource dataSource = (DataSource) initCtx.lookup("java:comp/env/jdbc/MyDataSource");
Connection c = dataSource.getConnection();
try {
    // ...
}
finally {
    c.close(); // makes the connection available for a new thread
}

必须在web.xml文件中声明DataSource:

<resource-ref>
    <description>Datasource example</description>
    <res-ref-name>jdbc/MyDataSource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

必须在Java EE容器内定义(使用其URL,连接数,用户,密码,设置等)。这取决于你的容器。

阅读Tomcat的以下解释:http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html

答案 1 :(得分:1)

我认为配置XML和您的Web应用程序是一个好主意。每次应用程序由新请求启动时,都会加载配置,并且可以从您创建的任何内部上下文中获取数据库连接信息。

在IIS上,这是通过Web.config文件的标准方法。

问候