Я создаю простое веб-приложение на основе Servlets / JSP, которое подключается к базе данных MySQL. Ранее я создал класс ConnectionParams
и класс DBConnection
. ConnectionParams
класс содержит жестко запрограммированный хост БД, имя пользователя и пароль. DBConnection
создает на его основе соединение JDBC, которое затем используется для операций с базой данных.
public class DBConnector extends HttpServlet {
Connection conn;
static DBConnectionProperties dbProps;
public DBConnector() {
try {
BufferedReader br = new BufferedReader(new FileReader(System.getProperty("java.io.tmpdir")+"\\zlmondbcon.txt"));
String line = br.readLine();
dbProps = new DBConnectionProperties(line);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection() {
return conn;
}
public Connection connect() throws SQLException, ClassNotFoundException {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(dbProps.getConnectionString(), dbProps.getUser(), dbProps.getPass());
return conn;
}
...
...
Я понял проблему при развертывании ее в тестовой среде, в которой есть отдельная БД, и администратор БД может изменить имя пользователя / пароль и т. Д. Поэтому я создал отдельный текстовый файл с такими подробностями, как WEB-INF \ dbConfig.txt . Это содержит информацию как:
dbName=mydbschema
dbUser=myuser
dbPass=mypass
dbType=mysql
Пользователь должен редактировать файл в <TOMCAT HOME>\Webapps\myproject\WEB-INF
при каждом перезапуске сервера. Каждый раз, когда запускается основной сервлет, он читает файл и сохраняет глобальный объект ConnectionParams
. Я вижу, что это определенно не лучшая практика.
Я ищу более надежное решение для того же.
Пожалуйста, измените вопрос, если считаете, что он не сформулирован должным образом. Добавьте комментарии, если я должен добавить больше деталей.