powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC
25 сообщений из 133, страница 2 из 6
Объединение sql запросов в один класс JDBC
    #39631766
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopОкей. Разделил их что бы не копать один класс у которого будет 3000+ строк. Я заманаюсь искать в нем что либо
обычно делают ОРМ и классы сущностей.
И там никак не потеряться. Так?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631769
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopДля подключения к бд и работы с ней использую две библиотеки commons dbutils и commons dbcp2 (пул подключений к бд).
Мно одно не понятно. Почему не QueryDSL или jOOQ? Намного лучше вашего велосипеда будет.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631773
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвадя,
разные запросы, отвечающие за определенную область в приложенииу меня запросов(точнее хранимок) 100++ и что будет 100++ областей в приложении?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631779
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя,
нет.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631781
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczTsyklopДля подключения к бд и работы с ней использую две библиотеки commons dbutils и commons dbcp2 (пул подключений к бд).
Мно одно не понятно. Почему не QueryDSL или jOOQ? Намного лучше вашего велосипеда будет.

Ибо изначально начали писать так. Переписывать нет ни времени ни средств.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631785
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяу меня запросов(точнее хранимок) 100++ и что будет 100++ областей в приложении?
вадя, ты реально что ли не врубаешься? у него просто 3 dao, которые он как-то там логически разделил по функционалу - грубо говоря в классе User методы типа getMessages, loadById и т.д., в классе Админ - getUsers, disableUser и т.д., в классе Chat - getRooms, getМеssagesByRoom и т.п. Как он конкретно эти стопицот методов поделил не имеет значения, очевидно же, что так или иначе им не место в одном классе. Или не очевидно ;) ?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631786
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklopвадя,
разные запросы, отвечающие за определенную область в приложенииу меня запросов(точнее хранимок) 100++ и что будет 100++ областей в приложении?

Я сам разбил приложение на разные области. для каждой создал свой класс.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631787
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,
++++++
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631796
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Generic DAO pattern уже упоминал кто-нибудь?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631803
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczGeneric DAO pattern уже упоминал кто-нибудь?
Не буду я такое использовать. Проект никто под это переписывать не будет.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631807
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczGeneric DAO pattern уже упоминал кто-нибудь?
можно попытаться
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631809
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz
ещё вопросы есть ?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631818
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopBlazkowiczGeneric DAO pattern уже упоминал кто-нибудь?
Не буду я такое использовать. Проект никто под это переписывать не будет.
Тогда в чем смысл вопроса, если никто переписывать не будет?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631821
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczТогда в чем смысл вопроса, если никто переписывать не будет?
Может есть вариант с тем что есть сделать нормально. Как-то.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631823
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopКак видно конструктор у всех один, но методы разные (дубликатов нет).

1. Я вижу три разных конструктора. А не один. Разные классы - разные конструкторы.
2. То что методы разные это плохо, значит что вы не смогли выделить что-то общее.

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

И ни слова зачем этот класс нужен. И зачем ему доступ ко всем остальным DAO.

TsyklopКак правильно такое сделать?

Все классы создаются по какой-либо причине. "Доступ ко всем методам" это не причина. Это пагубное желание иметь "золотой молоток". Вы даже не объяснили, если у вас в примере 3 класса. То в реальном проекте больше? Значит "доступ нужен" вообще ко всем возможным методам DAO?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631826
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopМожет есть вариант с тем что есть сделать нормально. Как-то.
Начинте с ответа на вопрос что именно вы считаете ненормальным. Тогда можно будет обсудить "нормальное" решение.
Дайте больше конкретики, что вы как партизан. Что именно вас не устраивает в вашем коде? Для чего вам нужен ещё один класс? Почему рефакторинг это для вас проблема. Рефакторинг не является "переписыванием".
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631830
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

У этих классов не должно быть ничего общего.
Методы разные ибо обрабатывают разные запросы к бд, они в принципе не могут быть одинаковыми.

В реальном проекте 3 класса тоже.

Я хочу уйти от того что я привел в пример в конце самого первого поста.

Проблема ибо на это нет времени и средств. А если такое рефакторить то это займет много времени.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631839
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopУ этих классов не должно быть ничего общего.

Это правильно. Всё общее должно быть в родительском классе. Но так как вы общего не замечаете, то оно у вас есть в каждом классе. А родителя нет.

TsyklopМетоды разные ибо обрабатывают разные запросы к бд, они в принципе не могут быть одинаковыми.

Они не одинаковые, но они схожие. И в этом ошибка. Схожеть должне быть вынесена в общий код. А разница должна оставаться в разных методах и классах. Как бы это не было очевидно, но в вашем коде этого нет.

TsyklopВ реальном проекте 3 класса тоже. А если такое рефакторить то это займет много времени.

Ммм. ОК. В каждом классе по сотне методов?

TsyklopЯ хочу уйти от того что я привел в пример в конце самого первого поста.

Не вижу никакого примера в конце поста. В конце вашего поста использование этих классов.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631842
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaвадя, ты реально что ли не врубаешься?
у него никогда не было DAO
))
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631844
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор!
У вас 3 класса по 400 методов каждый.
Ещё раз сформулируйте проблему.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631850
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaвадя, ты реально что ли не врубаешься? у него просто 3 dao, которые он как-то там логически разделил по функционалу - грубо говоря в классе User методы типа getMessages, loadById и т.д., в классе Админ - getUsers, disableUser и т.д., в классе Chat - getRooms, getМеssagesByRoom и т.п. Как он конкретно эти стопицот методов поделил не имеет значения, очевидно же, что так или иначе им не место в одном классе. Или не очевидно ;) ?я то врубился, вот только если б это было изночально правильное разделение, то такого вопроса 21345784 бы не возникло.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631857
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

У них схожее так это конструктор.

Сами методы похожи разве что такими вот вещами: getQueryRunner().query, getQueryRunner().insert, getQueryRunner().update. Еще могут быть схожи по возвращаемым типам. Но суть разная.

К примеру два метода:

Код: 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);
    }



Код: java
1.
2.
3.
4.
5.
6.
7.
public JSONArray userGetPayments(int userId, boolean paid, boolean active, boolean wait, boolean finish, boolean activate) throws SQLException {
        return getQueryRunner().query("SELECT p.*, s.id AS site_id, url FROM payments AS p LEFT JOIN site AS s ON s.id=p.site_id WHERE p.user_id = ? AND p.paid = ? AND active = ? AND wait = ? AND finish = ? AND (activate = ?  OR activate = ?);", new ResultSetHandler<JSONArray>() {
            public JSONArray handle(ResultSet rs) throws SQLException {
                return DataSource.getDbResultArray(rs);
            }
        }, userId, paid, active, wait, finish, activate, !activate);
    }



Оба запроса query, но у одного один параметр, у второго в разы больше. Первый возвращает один объект, второй коллекцию и есть которые вообще int возвращают (id записи).

В каждом классе почти по 50 (примерно) методов, а может и больше. Но меньше 100

Вот про это использование я и говорю. Что бы ужать это все дело.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631861
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123у него никогда не было DAO
были, просто он не знал, что это DAO ;)
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631862
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopЧто бы ужать это все дело
опыт написания репозитария или использования ОРМ есть?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631865
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поиграю в угадай мелодию...

подозреваю, что ТС пишет в тысяче мест тот же самый код

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

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

basicDataSource.getConnection().close();



и хочет это дело как-то упростить, чтобы вместо него писать каждый раз new MySuperClass и вызывать через него свои сотни методов.
...
Рейтинг: 0 / 0
25 сообщений из 133, страница 2 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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