【问题标题】:How can i store database information in JSF2我如何在 JSF2 中存储数据库信息
【发布时间】:2013-07-09 11:22:46
【问题描述】:

在我的托管 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 项目定义一些变量的方法

提前致谢

【问题讨论】:

  • 这只是为了学习/爱好吗?否则最好寻找 JPA。

标签: jsf-2 jdbc


【解决方案1】:

首先,您应该了解 Java EE 项目的基本架构。在托管 bean 中连接数据库不是一个好主意。这是非常糟糕的做法。请查看我的previous answer 以了解基本架构。

数据库连接在集成层中完成,这些类称为数据访问对象 (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 tutorial - the data layer

【讨论】:

    【解决方案2】:

    将这些类型的值存储在 .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);
    

    或者你可以简单地这样做: How to get properties file from /WEB-INF folder in JSF?

    【讨论】:

      猜你喜欢
      • 2012-10-12
      • 2015-11-10
      • 2010-12-05
      • 2013-11-28
      • 1970-01-01
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      相关资源
      最近更新 更多