У меня есть сервисная архитектура REST, которая маршрутизирует запросы к классу с помощью этого метода. Этот метод открывает соединение с базой данных, запрашивает значения и, наконец, закрывает соединение с базой данных. После этого JSON создается из значений базы данных и возвращается через REST.Это безопасный способ подключения и отключения к mysql через jdbc?
public HashMap<Integer, Artifact> queryDBValues(String userNo) {
DAO dao = getDAO(DB1);
Connection connection = dao.instantiateConnection();
ResultSet resultSet = null;
Statement statement = null;
HashMap<Integer, Artifact> artifacts = new HashMap<Integer, Artifact>();
try {
statement = connection.createStatement();
String stmntStr = "select * from myTable";
resultSet = statement.executeQuery(stmntStr);
int i = 0;
while (resultSet.next()) {
Artifact artifact = new Artifact();
artifact.setArtifactId(resultSet.getString("id"));
artifacts.put(i, artifact);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
dao.closeSQLComponents(resultSet, connection);
}
return artifacts;
}
DAO - это абстрактный класс, который создается на основе значения, полученного в getDAO(). Я делаю это, потому что я подключаюсь к нескольким базам данных, и я подключаюсь и отключается от классов, расширяющих этот класс.
я получил ошибку из базы данных MySQL после подключения, которая гласит: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Источник данных отвергнуты установление соединения, сообщение с сервера: «Слишком много соединений»
наконец, соединения закрываются. В долгосрочной перспективе я планирую использовать пул соединений c3p0. Достаточно ли этого достаточно для повторного использования соединений в настоящее время с низким уровнем использования?
Рад, что я просмотрел ответы перед тем, как набирать текст, вы взяли слова изо рта. Пожалуйста, закройте элементы в том же блоке кода, в котором вы их открываете. Скрытие закрытия в методе DAO является нечетным, наличие DAO и не открытие их внутри DAO _even odder_. Выберите использовать DAO или нет, но не используйте его наполовину. Я голосую за то, что я открываю дверь в DAO. –