Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC / 25 сообщений из 133, страница 1 из 6
17.04.2018, 15:38
    #39631705
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
Для подключения к бд и работы с ней использую две библиотеки 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
17.04.2018, 15:52
    #39631718
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
Наследование!
...
Рейтинг: 0 / 0
17.04.2018, 15:58
    #39631723
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
Blazkowicz,
один наследует другого?
...
Рейтинг: 0 / 0
17.04.2018, 16:00
    #39631728
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
TsyklopКак правильно такое сделать?
не понятно, где в вопросе подвох - потому что тут вариантов как-бы и нет. если есть классы, которые никак друг с другом не связаны и которые нужно как-то использовать совместно, значит нужен класс-контейнер, которых имеет доступ к ним всем

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

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

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


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

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

Нет это не три роли. DataBaseUser отвечает за все что касается юзера. DataBaseAdmin все что касается функционала на всем сайте. DataBaseChat отвечает за чат.
...
Рейтинг: 0 / 0
17.04.2018, 16:12
    #39631747
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
TsyklopНет это не три роли. DataBaseUser отвечает за все что касается юзера. DataBaseAdmin все что касается функционала на всем сайте. DataBaseChat отвечает за чат.это разделение и называется - роли.
...
Рейтинг: 0 / 0
17.04.2018, 16:12
    #39631748
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
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
17.04.2018, 16:13
    #39631752
Tsyklop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объединение sql запросов в один класс JDBC
вадяTsyklopНет это не три роли. DataBaseUser отвечает за все что касается юзера. DataBaseAdmin все что касается функционала на всем сайте. DataBaseChat отвечает за чат.это разделение и называется - роли.

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

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


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