Получить учетные данные базы данных из файла context.xml

0

У меня есть проект java, который реализует некоторые API, в Eclipse.

У меня есть файл db.java который позволяет общаться с базой данных MySQL.

Вместо того, чтобы иметь учетные данные MySQL в java файле, я хотел бы иметь их в файле /META-INF/context.xml.

Вы знаете, как это сделать?

Это мой текущий код:

public class db {

    private String userName = null;
    private String password = null;
    private String dbName = null;
    private String db_connect_string = null;

    public db() {
        this.db_connect_string = "jdbc:mysql://localhost/mydb";
        this.dbName = "name";
        this.userName = "uname";
        this.password = "pass";
    }

protected Connection getDBMySQLCon() {
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        return DriverManager.getConnection(this.db_connect_string+"?useSSL=false",  this.userName, this.password);
    } catch (ClassNotFoundException | SQLException | InstantiationException | IllegalAccessException e) {
        e.printStackTrace();
    }
    return null;
}
Теги:

2 ответа

1

Это часть среды контейнера.

/META-INF/context.xml

Контекст.xml переопределяет входной код tomcate.

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <!-- Specify a JDBC datasource -->
    <Resource name="jdbc/mydatabase" 
              auth="Container"
              type="javax.sql.DataSource" 
              username="YOUR_USERNAME" 
              password="YOUR_PASSWORD"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://mysql.metawerx.net:3306/YOUR_DATABASE_NAME?
              autoReconnect=true"
              validationQuery="select 1"
              maxActive="10" 
              maxIdle="4"/>

</Context>

// Get DataSource
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mydatabase");
// Get Connection and Statement
Connection c = ds.getConnection();
Statement s = c.createStatement();
1

Вместо файла XML вы можете иметь файл свойств, который имеет необходимую информацию. Проблема с файлом XML заключается в том, что вам придется выбирать синтаксический анализатор XML и работать с ним.

Если вы хотите продолжить работу с файлом свойств, вы можете рассмотреть следующий фрагмент.

public void setProp() throws Exception{  
    FileReader reader=new FileReader("db.properties");  
    Properties p=new Properties();  
    p.load(reader);  
    // you can get values you want as properties using
    this.db_connect_string = p.getProperty("db_connect_string");  
    this.dbName = p.getProperty("dbName");  
}  

И ваша файловая структура должна быть чем-то вроде

db_connect_string=connection.string  
dbName=name
userName=uname
password=pass

Ещё вопросы

Сообщество Overcoder
Наверх
Меню