Как правильно подключиться к серверу mysql в приложении jdbc?

1

У меня есть база данных с несколькими зарегистрированными пользователями, которые используют базу данных через приложение java с помощью jdbc. Я читал в другом месте, что соединения должны быть открыты и закрыты в кратчайшие возможные моменты времени, большую часть времени в том же блоке try, что и в статусе или запросе, который вы выполняете. Это, однако, подразумевает, что я должен хранить пользователя и пароль в памяти программы и использовать его повторно для создания новых соединений; но разве нет проблем с безопасностью при хранении пароля в памяти программы? Как сделать новые подключения к базе данных?

  • 0
    Используйте пул соединений с базой данных. Это программное обеспечение инициализирует соединения и закрывает их для вас.
Теги:
jdbc

2 ответа

0

Я читал в другом месте, что соединения должны быть открыты и закрыты в кратчайшие сроки

Транзакция должна быть выполнена в кратчайшие сроки. Постоянное открытие и закрытие соединений приведет к множеству (сетевых) накладных расходов.
Но если вы используете пул соединений, открытие и закрытие соединений приводит только к тому, что вы подключаетесь из пула и освобождаете соединение обратно в пул. В этом случае открытие и закрытие соединения должно выполняться как можно быстрее, чтобы другие процессы/потоки могли повторно использовать соединение. Пул соединений сам управляет фактическим открытием и закрытием (сетевыми) подключениями для вас, а также другими полезными функциями, такими как обеспечение закрытия наборов результатов, закрытие подготовленных заявлений, поддержание связей и т.д.
Использование пула соединений полезно использовать соединения базы данных с сервера-клиента или приложения. Я объяснил это в предыдущем ответе.

0

Я предполагаю, что ваш вопрос НЕ о том, как закодировать соединение с БД.

Это действительно зависит от того, зарегистрированы ли ваши пользователи в базе данных, или у вас есть только один идентификатор (не человек) для подключения к программе и обслуживающий всех пользователей. Если первое, вы можете как-то попросить пользователя ввести пароль один раз, сохранить его в переменной, использовать переменную для подключения, отключить после использования, повторно подключиться/отключиться, если необходимо. Пароль только "хранится" в памяти "на лету" и больше не существует после завершения вашей программы, поэтому он безопасен.

Если это будет позже, тогда вам лучше запустить вашу программу на сервере веб-сервлетов, и, как сказал Луиджи, используйте пул соединений. В этом случае пароль подключения будет закодирован в каком-либо файле конфигурации и доступен только администратору сервера. Если у вас нет такого сервера, вам нужно вернуться к решению в вышеприведенном абзаце и зарегистрировать всех своих пользователей в БД, каждый с собственным идентификатором и паролем.

Надеюсь, поможет.

Ещё вопросы

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