powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket client-server и sql
7 сообщений из 7, страница 1 из 1
Socket client-server и sql
    #37970258
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.
Я правлю чужой сокет-сервер (с классом взаимодействия с sql).
От клиента подается на сервер команды. Сервер слушает какая команда приходит и соответственно или что то пишет в базу, или вычитываем из базы и отправляет клиенту.

Обратил внимание на то, что в sql части (класс взаимодействия сервер-база) в каждом методе есть отдельно открытие и закрытие соединения с базой.

Примет:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
public SQL() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { 
        . . .
        String url = "jdbc:mysql://localhost:3306/icross";
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = DriverManager.getConnection(url, properties);
        System.out.println("Database connection established");
    }
. . . 
public void addUser(String newid, String login, String password, String date) throws SQLException {
        stmt = (com.mysql.jdbc.PreparedStatement) conn.prepareStatement("INSERT users " + "(id, login, password, date)" + "VALUES (?,?,?,?)");
        stmt.setInt(1, Integer.valueOf(newid));
        stmt.setString(2, login);
        stmt.setString(3, password);
        stmt.setString(4, date);
        int is;
        is = stmt.executeUpdate();
        stmt.close();
        conn.close();
 }



И таких открытий-закрытий вагон.
Вопрос — правильно ли это, или нужно создавать один конект при подключении пользователя и запускать необходимые методы, а уж после закрытия сессии полный дисконект с базой.

Спасибо
...
Рейтинг: 0 / 0
Socket client-server и sql
    #37970262
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadсоздавать один конект при подключении пользователя и запускать необходимые методы, а уж после закрытия сессии полный дисконект с базойконешно
...
Рейтинг: 0 / 0
Socket client-server и sql
    #37970269
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grasoff.netHunterNomadсоздавать один конект при подключении пользователя и запускать необходимые методы, а уж после закрытия сессии полный дисконект с базойконешно
А .... Я догадывался ...
Просто такого сам никогда не писал, но когда смотрел логи .... ;-) в общем скоро для них пришлось бы отдельно сервер держать.

Придется переписывать самому .

Спасибо. И удачных удач!!!
...
Рейтинг: 0 / 0
Socket client-server и sql
    #37970270
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadОбратил внимание на то, что в sql части (класс взаимодействия сервер-база) в каждом методе есть отдельно открытие и закрытие соединения с базой.

Это больше на конструктор похоже, а не на метод.

HunterNomadИ таких открытий-закрытий вагон.
Вопрос — правильно ли это,

Это сильно зависит от обстоятельств. Но введение пула, для сервера существенно повысит производительность. Хотя в таком сервере возможны проседания и в других местах. На общем фоне может и не заметны тормоза.

HunterNomadили нужно создавать один конект при подключении пользователя и запускать необходимые методы, а уж после закрытия сессии полный дисконект с базой.
Так как аутентификация собственная, то смысла в connection per session особого нет. Connection Pool + getConnection() в начале каждой операции\метода + close() в finally блоке - это наиболее подходящаяя стратегия для серверного приложения, так как при большой нагрузке, она позволяет минимизировать число физических соединений, но при этом выдававать почти такую же производительность как connection per session.
...
Рейтинг: 0 / 0
Socket client-server и sql
    #37970328
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczHunterNomadОбратил внимание на то, что в sql части (класс взаимодействия сервер-база) в каждом методе есть отдельно открытие и закрытие соединения с базой.

Это больше на конструктор похоже, а не на метод.

Согласен, public SQL() ... я привел в примере в качестве вступления.
Шас читаю про Connection Pool. Весчь интересная, но шибко (как для меня) запутанная (пока простого и понятного примера не нашел). Хотя понимаю, что в более серьезной ситуации только так и надо.
На сервер нагрузка одновременно 20 - 50 подключений. Стоить ли сильно из-за этого много чего писать? Предыдущий сервер весил 18Кб (без библиотек). Просто попросили добавить кое чего и при необходимости оптимизировать.
О как.

Спасибо.
...
Рейтинг: 0 / 0
Socket client-server и sql
    #37970336
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HunterNomadШас читаю про Connection Pool. Весчь интересная, но шибко (как для меня) запутанная (пока простого и понятного примера не нашел). Хотя понимаю, что в более серьезной ситуации только так и надо.
Apache Commons DBCP. Если хочется обойтись без либы, то можно нагуглить велосипед в один класс. Помню часто гулял на просторах инета.


HunterNomadНа сервер нагрузка одновременно 20 - 50 подключений. Стоить ли сильно из-за этого много чего писать? Предыдущий сервер весил 18Кб (без библиотек). Просто попросили добавить кое чего и при необходимости оптимизировать.
Ну, это вам решать стоит или нет.
...
Рейтинг: 0 / 0
Socket client-server и sql
    #37970359
HunterNomad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, За наводку на Apache Commons DBCP спасибо. Шас буду читать.
А насчет BlazkowiczHunterNomadНа сервер нагрузка одновременно 20 - 50 подключений. Стоить ли сильно из-за этого много чего писать? Предыдущий сервер весил 18Кб (без библиотек). Просто попросили добавить кое чего и при необходимости оптимизировать.
Ну, это вам решать стоит или нет.
Если честно, то я никогда такого не писал. И с какой стороны к этому подойти изучаю в исходниках предыдущего программера.

Спасибо. ;)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Socket client-server и sql
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]