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

如何在java web应用程序中配置数据库参数?,java,web-applications,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.for

嗨,下面是我的数据库连接文件

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;

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

问候
Tony

您可以将这些值放在属性文件中,比如说
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上配置数据源,请阅读此

您可以将这些值放在属性文件中,比如说数据库。属性文件,然后使用如下代码加载这些属性:

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上配置数据源,请阅读此

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

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

您考虑过使用JNDI吗?我认为这将是“标准”答案。另外,让你的应用程序以root用户身份连接是不可取的。谢谢你的宝贵意见,我使用的是Tomcat7。是否可以使用JNDI,很抱歉我以前在jboss中使用过JNDI,所以我问了这个问题是的,JNDI可以与Tomcat7一起使用。请看这实际上包括了一个MySQL的分步示例。感谢您的耐心和宝贵的回答,如何在java中不使用jstl完成以下部分。4.您提供的参考的测试代码。请原谅,花点时间看看MySQL示例后面的Oracle示例的第3步。您有没有研究过使用JNDI?我认为这将是“标准”答案。另外,让你的应用程序以root用户身份连接是不可取的。谢谢你的宝贵意见,我使用的是Tomcat7。是否可以使用JNDI,很抱歉我以前在jboss中使用过JNDI,所以我问了这个问题是的,JNDI可以与Tomcat7一起使用。请看这实际上包括了一个MySQL的分步示例。感谢您的耐心和宝贵的回答,如何在java中不使用jstl完成以下部分。4.您提供的参考的测试代码。请原谅,花点时间看看MySQL示例后面的Oracle示例的步骤3。