Jsf 2 如何在JSF2中存储数据库信息

Jsf 2 如何在JSF2中存储数据库信息,jsf-2,jdbc,Jsf 2,Jdbc,在托管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 {

在托管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个文件中进行修改

有吗

  • 存储数据库连接的一种方法
  • 为整个web项目定义一些变量的方法

  • 提前感谢

    通常最好将此类值存储在.properties文件中。然后可以通过java.util.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);
    
    或者您可以简单地执行以下操作:

    首先,您应该了解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教程以更好地理解

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