powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC
25 сообщений из 133, страница 1 из 6
Объединение sql запросов в один класс JDBC
    #39631705
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для подключения к бд и работы с ней использую две библиотеки commons dbutils и commons dbcp2 (пул подключений к бд).

Есть три класса в которых прописаны запросы к бд. Все эти классы отвечают за свой функционал (не просто так разделил)

DataBaseUser

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class DataBaseUser {

    private QueryRunner queryRunner;

    public DataBaseUser(BasicDataSource basicDataSource) {
        this.queryRunner = new QueryRunner(basicDataSource);
    }

    ...
}



DataBaseAdmin

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class DataBaseAdmin {

    private QueryRunner queryRunner;

    public DataBaseAdmin(BasicDataSource basicDataSource) {
        this.queryRunner = new QueryRunner(basicDataSource);
    }

    ...
}



DataBaseChat

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public class DataBaseChat {

    private QueryRunner queryRunner;

    public DataBaseChat(BasicDataSource basicDataSource) {
        this.queryRunner = new QueryRunner(basicDataSource);
    }

    ...
}



Как видно конструктор у всех один, но методы разные (дубликатов нет).

Хотелось бы создать один класс который бы смог получить доступ ко всем методам этих трех классов. Как правильно такое сделать? сделать класс обертку который в себе будет хранить все три класса? или как.

Еще. использование этих классов сейчас выглядит таким образом:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
BasicDataSource basicDataSource = Core.getDataSource();

DataBaseAdmin dbAdmin = new DataBaseAdmin(basicDataSource);
DataBaseChat dbChat = new DataBaseChat(basicDataSource);

...

basicDataSource.getConnection().close();



Тут я беру DataSource который предоставляет библиотека dbcp2 передаю в QuerryRunner который их DbUtils. Он же в свою очередь берет подключение из пула. В последней строке возвращаю подключение в пул свободных.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631718
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наследование!
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631723
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
один наследует другого?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631728
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopКак правильно такое сделать?
не понятно, где в вопросе подвох - потому что тут вариантов как-бы и нет. если есть классы, которые никак друг с другом не связаны и которые нужно как-то использовать совместно, значит нужен класс-контейнер, которых имеет доступ к ним всем

TsyklopВ последней строке возвращаю подключение в пул свободных
вот это неверно. нет никакой гарантии, что getConnection возращает тот самый коннект, с которым только что работали. Ну т.е. он может им оказаться, но вовсе не должен - это же пул, его задача дать коннекты всем, кто попросит в рамках дозволенного, так откуда нам знать, сколько коннектов запросят dbAdmin, dbChat и кто там еще в зоопарке живет? кто вызвал getConnection, тот его пусть и закрывает
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631729
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
вы не выделяйте 3 класса под 3 строки запроса.
В чем выгода?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631730
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВ последней строке возвращаю подключение в пул свободных.про try-with-resources знаешь?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631732
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
знаю
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631733
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklop,
вы не выделяйте 3 класса под 3 строки запроса.
В чем выгода?

там не три строки запроса. Все три класса под 1000 строк кода.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631734
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвадя,
знаютогда зачем городить такой огород? ведь можно проще сделать.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631735
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВсе три класса под 1000 строк кода.
ну а чем классы отличаются?
Хорошо, ты напугал меня цифрой 300000.
Вопрос то остался - занафига?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631736
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123TsyklopВсе три класса под 1000 строк кода.
ну а чем классы отличаются?
Хорошо, ты напугал меня цифрой 300000.
Вопрос то остался - занафига?

а как иначе? как прописать разные запросы иначе?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631737
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklopвадя,
знаютогда зачем городить такой огород? ведь можно проще сделать.
пример можно? для моего случая
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631738
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopа как иначе? как прописать разные запросы иначе?а что в них разное? обработка? сама sql строка?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631740
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например есть класс
Код: java
1.
RunnerMy("select ssssss")


зачем делать
Код: java
1.
RunnerMy_XXXXXy("select ssssss")
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631741
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklopа как иначе? как прописать разные запросы иначе?а что в них разное? обработка? сама sql строка?

и обработка и sql строка. Еще бывают типы разные, такие как SELECT или INSERT или UPDATE или же DELETE.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631742
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopпример можно? для моего случаяполучается у тебя есть 3 роли для юзеров - чем они отличаются с точки зрения обработки?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631743
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopи обработка и sql строка. Еще бывают типы разные, такие как SELECT или INSERT или UPDATE или же DELETE.ну и что?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631746
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklopпример можно? для моего случаяполучается у тебя есть 3 роли для юзеров - чем они отличаются с точки зрения обработки?

Нет это не три роли. DataBaseUser отвечает за все что касается юзера. DataBaseAdmin все что касается функционала на всем сайте. DataBaseChat отвечает за чат.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631747
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopНет это не три роли. DataBaseUser отвечает за все что касается юзера. DataBaseAdmin все что касается функционала на всем сайте. DataBaseChat отвечает за чат.это разделение и называется - роли.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631748
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Вот пример метода, в котором запрос:

Код: java
1.
2.
3.
4.
5.
6.
7.
public JSONObject userGetInfo(int userId) throws SQLException {
        return getQueryRunner().query(SqlCore.SQL_USER_INFO_GET, new ResultSetHandler<JSONObject>() {
            public JSONObject handle(ResultSet rs) throws SQLException {
                return DataSource.getDbSingleRow(rs);
            }
        }, userId);
    }
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631752
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklopНет это не три роли. DataBaseUser отвечает за все что касается юзера. DataBaseAdmin все что касается функционала на всем сайте. DataBaseChat отвечает за чат.это разделение и называется - роли.

Окей. Разделил их что бы не копать один класс у которого будет 3000+ строк. Я заманаюсь искать в нем что либо
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631755
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
выше привел пример запроса одного. Вот там где query поставляется другое типа update или insert.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631757
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

я таки не понял в чем разница? с точки зрения DataBaseUser , DataBaseAdmin , DataBaseChat
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631758
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
разные запросы, отвечающие за определенную область в приложении
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631764
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВот пример метода, в котором запрос:
дай два разных класса с этим методом.
Если я правильно понял
...
Рейтинг: 0 / 0
25 сообщений из 133, страница 1 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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