Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Подключение к бд.

AdMiRaLL

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
AdMiRaLLL
Как правильнее работать с бд?
Подключаться к бд при включении плагина, по необходимости брать необходимые данные. Отключаться при выключении сервера.
Подключаться к бд когда заходит игрок(например), брать его данные, отключаться сразу же
Можно ли оставлять бд открытой на долгую сессию?
И не затратно ли при каждом входе игрока коннектиться к бд
 
Подключаться при onEnable, отключаться в onDisable. Причём, в параллельном потоке. Открытую да, конечно.
При входе игрока только делать запрос того, что тебе нужно.
 
А вот ещё вопрос.
Когда я беру данные из базы данных запросом, они будут такие какими они являются на момент запроса, или какими они были в момент, когда я коннектился?
 
А вот ещё вопрос.
Когда я беру данные из базы данных запросом, они будут такие какими они являются на момент запроса, или какими они были в момент, когда я коннектился?
конечно-же на момент запроса. Это почти нереально , когда есть 200+ коннектов хранить инфу при конекте , а не при запросе ( представляем себе базу данных размером 20 гигабайт , и 200 подключений ... Это 4 терабайта памяти , друзья мои. )
 
конечно-же на момент запроса. Это почти нереально , когда есть 200+ коннектов хранить инфу при конекте , а не при запросе ( представляем себе базу данных размером 20 гигабайт , и 200 подключений ... Это 4 терабайта памяти , друзья мои. )
А меня может отключить от бд, если я долго не делал к ней запросов, ну что-то типа сессия кончилась?
 
А меня может отключить от бд, если я долго не делал к ней запросов, ну что-то типа сессия кончилась?
Смотря от настройки самой БД , но может. Может инет оффнуть , и т.д. Вообще , можно проверять работает ли соеденение. Если нет - подключаться опять. Ток опять же , в отдельном потоке
 
как уже сказали выше - коннектимся при включени плагины, дисконектимся при отключении. но для безопасности при каждом запросе проверяем, действительно ли соединение и если нет - подключаемся снова.

Отправлять запросы в базу обязательно в отдельном потоке, ибо в некоторых случаях (лаг базы или еще чего) - сервер будет висеть ровно столько, сколько длится лаг со стороны базы.
 
https://github.com/MrHilgert/Time2Bonus/blob/master/ru/hilgert/t2b/SQLUtil.java

Использование:
JavaScript:
SQLUtils sql = new SQLUtils("хост", "логин", "пароль", 3306(порт), "База данных");
sql.exec("Выполнить SQL запрос");
ResultSet rs = sql.get("Например SELECT * FROM `authme`");
//Далее делаешь что хочешь с rs
sql.close();
 
https://github.com/MrHilgert/Time2Bonus/blob/master/ru/hilgert/t2b/SQLUtil.java

Использование:
JavaScript:
SQLUtils sql = new SQLUtils("хост", "логин", "пароль", 3306(порт), "База данных");
sql.exec("Выполнить SQL запрос");
ResultSet rs = sql.get("Например SELECT * FROM `authme`");
//Далее делаешь что хочешь с rs
sql.close();
отличный метод работы с базой, ага. в основном потоке)
решается не сложно, но то что в тех исходниках - точно лучше не использовать
 
отличный метод работы с базой, ага. в основном потоке)
решается не сложно, но то что в тех исходниках - точно лучше не использовать
ну дык, потоки я за вас сделать должен чтоль? :cry:
 
ну дык, потоки я за вас сделать должен чтоль? :cry:
а кто же еще? Мы чтоли? Мы юзеры знаем что твоя библа мега 228 крутая и она уже быстра как можно. (п.с. реально , для нубов надо ... некоторые нубы засунули в отдельный поток и .... ну короче , у них нифига оно не в отдельном )
 
https://github.com/MrHilgert/Time2Bonus/blob/master/ru/hilgert/t2b/SQLUtil.java

Использование:
JavaScript:
SQLUtils sql = new SQLUtils("хост", "логин", "пароль", 3306(порт), "База данных");
sql.exec("Выполнить SQL запрос");
ResultSet rs = sql.get("Например SELECT * FROM `authme`");
//Далее делаешь что хочешь с rs
sql.close();

твой код не работает исправь ошибки
 

Поделиться этой страницей

Назад
Верх