繁体   English   中英

如何在Java Web应用程序中使数据库参数可配置?

[英]How to make database parameter configurable in java web application?

大家好,以下是我的数据库连接文件,

package org.slingemp.common;

import java.sql.Connection;
import java.sql.DriverManager;

public class JDBCManager {

    public Connection mysqlConnection()  {
        Connection dbConnection = null;
        try {

          Class.forName("com.mysql.jdbc.Driver");
          dbConnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/slingemp","root","root");
          //System.out.println("mysql Driver Connedted::::::::");

        } catch (Exception e) {
            e.printStackTrace();
        }
        return dbConnection;

    }
}

在此,我想使连接字符串和驱动程序名称可配置。 如何执行此操作以及将包含可配置值的文件放在何处?

问候托尼

您可以将这些值放在属性文件(例如database.properties文件)中,然后使用以下代码加载这些属性:

private void loadProperties(){
  InputStream inputStream = JDBCManager.class.getClassLoader().getResourceAsStream("database.properties");
  try {
            databaseProperties.load(inputStream); // database properties is an instance variable Properties databaseProperties;
        } catch (IOException e) {
            logger.error("Exception occurred while loading server properties", e);
        }
}

根据评论:

是的,JNDI可以在Tomcat中使用,要在Tomcat 7上配置数据源,请阅读此官方文档

您可以将它们放入.properties文件或服务器JNDI资源。

jdbc.properties示例:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/yourDatabaseName
jdbc.username=username
jdbc.password=password

然后在java类中使用它来获取属性:

public static ResourceBundle getJdbcBundle() {
    return ResourceBundle.getBundle("jdbc");
}

String url = SomeClass.getJdbcBundle().getString("jdbc.url");

但是更有效的方法是使用JNDI。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM