1

在我的托管 bean 中,我需要访问一个 mySql 数据库。到目前为止,我使用了这样的代码:

    Class.forName("com.mysql.jdbc.Driver"); 
    String url = "jdbc:mysql://localhost:3306/test";
    String username = "user";
    String password = "1234";
    Connection connection = null;
    try {
        connection = DriverManager.getConnection(url, username, password);

现在我必须在多个 bean 中执行此操作,所以如果我需要更改数据库凭据,我必须在 10 个文件中摆弄。

有没有

  1. 一种存储数据库连接的方法
  2. 一种为整个 Web 项目定义一些变量的方法

提前致谢

4

2 回答 2

2

首先,您应该了解 Java EE 项目的基本架构。在托管 bean 中连接数据库不是一个好主意。这真是不好的做法。请查看我之前的答案以了解基本架构。

数据库连接在集成层中完成,这些类称为数据访问对象 (DAO)。

为静态连接属性创建 BaseDao 类。

class BaseDao
{
    private String url = "jdbc:mysql://localhost:3306/test";
    private String username = "user";
    private String password = "1234";
    private Connection connection;

    protected Connection getConnection()
    {     
          connection = DriverManager.getConnection(url, username, password);    
          return connection;
    }
}

并将基类扩展到需要数据库连接的派生类,并使用BaseDao#getConnection().

此外,最好将数据库连接保存在属性文件中并将它们注入到适当的类中。

相关教程

阅读 BalusC 教程以更好地理解DAO 教程 - 数据层

于 2013-07-11T13:20:11.753 回答
0

将这些类型的值存储在 .properties 文件中通常是一个好主意。然后可以通过 java.util.Properties ( http://docs.oracle.com/javase/7/docs/api/java/util/Properties.html )访问它们

这是一个很好的教程,描述了如何访问这些文件及其值,我建议你从这个开始:http ://www.mkyong.com/java/java-properties-file-examples/

(更多信息:http ://en.wikipedia.org/wiki/.properties )

在我的 IDE 中,我通常会创建一个新的源包 /src/main/config 并将我所有与配置有关的 .properties 和 .xml 文件放在那里。如果你这样做,你需要在你的 jsf 应用程序中像这样访问它:

String configFilePath = "configuration.properties";

props = new Properties();

InputStream propInStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(configFilePath);

props.load(propInStream);

或者您可以简单地这样做: 如何从 JSF 中的 /WEB-INF 文件夹获取属性文件?

于 2013-07-11T12:46:51.797 回答