我正在开发一个Web应用程序。 Web应用程序需要访问Patient数据库,该数据库现在是一个简单的MySQL数据库,但将来可能会被其他一些数据库(或数据源)替换。目前,所有内容都是硬编码的,但我想有一些方法来配置数据库连接(即数据库URL,用户,密码等)。
什么是简单直接的解决方案?如果我可以通过简单编辑文件来更改配置,那将是件好事。
我看到有Properties API以及Preferences。或者是否有一些关于servlets / web应用程序的习惯用法?
答案 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文件的标准方法。
问候