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

时间:2012-06-06 16:16:18

标签: java web-applications

以下是我的数据库连接文件

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;

    }
}

在此我想使连接字符串和驱动程序名称可配置。如何做到这一点以及放置包含可配置值的文件的位置?

此致 贝

2 个答案:

答案 0 :(得分:2)

您可以将这些值放在属性文件中说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);
        }
}

根据评论:

是的,可以在Tomcat中使用JNDI,在Tomcat 7上配置数据源请阅读official documentation

答案 1 :(得分:1)

您可以将它们放入.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。