powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC
133 сообщений из 133, показаны все 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
Объединение 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
Объединение sql запросов в один класс JDBC
    #39631866
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Объединение sql запросов в один класс JDBC
    #39631870
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopУ них схожее так это конструктор.
Сами методы похожи разве что такими вот вещами: getQueryRunner().query, getQueryRunner().insert, getQueryRunner().update. Еще могут быть схожи по возвращаемым типам. Но суть разная.

Замечательно. То есть вы видите копипасту, но не считаете её плохой. И в этом проблема вашего кода.
Если конкретика - запросы, типы, параметры. Это то что диктует ваша бизнес-логика.
А если инфраструктура - то что вы указали выше и то что у вас скопировано и вставлено в каждый метод.

И именно потому что ваша инфраструктура эта сплошная копипаста - её тяжело менять.

К примеру два метода могли бы выглядеть так:
Код: java
1.
2.
3.
public JSONObject userGetInfo(int userId) throws SQLException {
    return querySingleRow(SqlCore.SQL_USER_INFO_GET, userId).toObject();
}



Код: java
1.
2.
3.
4.
public JSONArray userGetPayments(int userId, boolean paid, boolean active, boolean wait, boolean finish, boolean activate) throws SQLException {
        return 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 = ?);"
, userId, paid, active, wait, finish, activate, !activate).toArray();//activate у вас какой-то ржачный.
  }
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631872
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopchpashaи хочет это дело как-то упростить, чтобы вместо него писать каждый раз new MySuperClass и вызывать через него свои сотни методов.
ну не в тысяче, но встречается довольно часто.
Спасибо за понимание.
Синглтоны? Методы же без состояния. Зачем каждый раз новый экземпляр делать.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631873
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Хм. я понял Вас. Понимаю о чем Вы.

Ну хорошо будь как предлагаете Вы. Мне при этом следует все методы слить в один класс? или как?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631880
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczTsyklopпропущено...

ну не в тысяче, но встречается довольно часто.
Спасибо за понимание.
Синглтоны? Методы же без состояния. Зачем каждый раз новый экземпляр делать.

Не синглы. в каждый класс передаётся DataSource. А там уже берется connection из пула подключений к базе (по умолчанию их 10) ну и дальше уже идут запросы.

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

То есть DataSource-ов много разных, что их надо в каждой транзакции свой заводить? Откройте что ли ThreadLocal и AOP для себя.
Если бы вы изучили Spring и прочитали Enterprise Patterns Фаулера и Clean Code Мартина, то вопросов бы у вас было намного меньше. Потому как все ваши проблемы в них обмусолены и решены уже более десяти лет назад.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631887
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123TsyklopОт этой проблемы я тоже хочу уйти....
ни разу не писав репо или ОРМ?

нет. опыта такого нет пока что.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631888
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczTsyklopНе синглы. в каждый класс передаётся DataSource.

То есть DataSource-ов много разных, что их надо в каждой транзакции свой заводить? Откройте что ли ThreadLocal и AOP для себя.
Если бы вы изучили Spring и прочитали Enterprise Patterns Фаулера и Clean Code Мартина, то вопросов бы у вас было намного меньше. Потому как все ваши проблемы в них обмусолены и решены уже более десяти лет назад.

Нет. DataSource один на все приложение. Я его просто передаю а далее из него вытягивается свободный конекшн.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631889
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123пропущено...

ни разу не писав репо или ОРМ?

нет. опыта такого нет пока что.
ну дак изучите за неделю, а потом спрашивайте.
Не?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631892
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopЯ его просто передаю а далее из него вытягивается свободный конекшн.
а в ОРМ у вас будет 20 классов сущностей и вы на каждую транзакцию будете открывать сессию.
...
Старая система вполне себе работоспособна.
50 методов это не много.
Решать Вам, но вы должны уметь работать обоим способом.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631895
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,

У вас есть транзакции. Каждая транзакция реализована неким методом. Но все они выглядят одинаково:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DataSource ds = getCurrentDatasource()
try(Connection c = ds.getConnection()) {
  c.setAutoCommit(false);
  setThreadConnection(c);
  doTransactionQueries();
  c.commit();
} catch(Exception e) {
  c.rollback();
  throw e;
} finally {
   removeThreadConnection();
}



Это называется "инфраструктура". Чтобы не копировать её в каждый метод, её можно применить через АОП ко всем бизнес-методам.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631897
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopНет. DataSource один на все приложение. Я его просто передаю а далее из него вытягивается свободный конекшн.
Ну так значит передача его в конструкторы это профанация. Ничто не мешаем вам писать так:

Код: java
1.
2.
3.
public class DataBaseUser {
    private final QueryRunner qr = new QueryRunner(Core.getDataSource());
}


И все ваши DAO являются обычными синглтонами, не нужно их создавать каждый раз.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631900
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczTsyklopНет. DataSource один на все приложение. Я его просто передаю а далее из него вытягивается свободный конекшн.
Ну так значит передача его в конструкторы это профанация. Ничто не мешаем вам писать так:

Код: java
1.
2.
3.
public class DataBaseUser {
    private final QueryRunner qr = new QueryRunner(Core.getDataSource());
}



И все ваши DAO являются обычными синглтонами, не нужно их создавать каждый раз.
+1
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631902
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczне нужно их создавать каждый раз.
он тогда не узнает конец транзакции, когда коммитить.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631908
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
Button_Click(){
  d = new DataBaseUse();
  d.Load(ID=12344)
  d.SaveToJSON('c:\1.json')
  d.Close();
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631910
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
необходимость создавать одни и те же объекты во многих местах - тоже проза жизни. Можно немного упростить процесс, написав синглтон, как предлагал Blazkowicz
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
//псевдокод для понимания общей идеи
class MyDaoProvider {

private static BasicDataSource ds;
private static AdminDao adminDao;


static AdminDao getAdminDao() {
 if (adminDao == null)
    adminDao = new AdminDao(ds)
 return adminDao;
}


понятна идея? Код условный, он не-потокобезопасный. Как правильно реализовать синглтон гуглим.
Про использование dependency-injection framework я уже не заикаюсь, но это был наглядный пример того, где он нужен ;)
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631913
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaон не-потокобезопасный
тогда нет смысла.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631915
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тогда нет смысла
домашнее задание ;)
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631920
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaPetro123тогда нет смысла
домашнее задание ;)
3 класса, и в базовом классе в конструкторе
new QueryRunner(Core.getDataSource());
тоже будет работать в потоке, и не синглетоны
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631922
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и всё-таки в чём смысл разделения на DataBaseUser , DataBaseAdmin , DataBaseChat ?
просто разделить на несколько классов?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631924
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяи всё-таки в чём смысл разделения на DataBaseUser , DataBaseAdmin , DataBaseChat ?
просто разделить на несколько классов?
у тебя бухгалтерия модуль вместе с торговлей?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631926
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123у тебя бухгалтерия модуль вместе с торговлей?вопрос не в этом.
ТС хочет объединить разделив...
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631930
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяТС хочет объединить разделив...ну да.
В конструкторе получив коннект. При уничтожении отдать в пул и коммит.
В чём проблема?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631936
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тоже будет работать в потоке, и не синглетоны
будет. до того момента, пока в конструкторе еще один параметр не появится или другая какая байда
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631940
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123В конструкторе получив коннект. При уничтожении отдать в пул и коммит.
В чём проблема?
такой вариант почему не устраивает?
Код: java
1.
2.
3.
4.
5.
        try (Connection con = dataSource.getConnection();
              .............
        } catch (SQLException | IOException ex) {
           ..................
        }
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631942
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaPetro123тоже будет работать в потоке, и не синглетоны
будет. до того момента, пока в конструкторе еще один параметр не появится или другая какая байдаконструктор пустой в параметрах. За этим следит базовый класс.
А иначе вообще всё оставить как есть.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631943
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
ты классы допиши. Куда твой код пихать?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631946
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123конструктор пустой в параметрах
ты не понял, проблема не в этом. Конструктор пустой только пока. Базовый класс, не базовый - не важно. Используется он в условных 50-ти местах. Завтра нам понадобилась внутри класса зависимость от условного класса X и нужно в 50 местах рефакторить создание объекта или дописывать dao.setMyX(new X()) . По-этому я предложил централизовать код для создания объектов, которые используются везде. такой DI для бедных. Соответственно будет создаваемый класс синглтоном или нет - не важно с точки зрения вызывающего кода. Хош - создавай каждый раз.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631949
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты классы допиши. Куда твой код пихать?
к примеру так
Код: java
1.
2.
3.
4.
5.
6.
 try (Connection con = dataSource.getConnection();
             Statement st = con.createStatement()){
            st.execute("TRUNCATE TABLE loa;");
        } catch (SQLException | IOException ex) {
           ..................
        }
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631953
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
придуриваешься?
В системе есть 3x50 методов типа:
Код: java
1.
2.
3.
public JSONObject userGetInfo(int userId) throws SQLException {
    return querySingleRow(SqlCore.SQL_USER_INFO_GET, userId).toObject();
}


вот и вставляй
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631954
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123В системе есть 3x50 методов типа. вот и вставляй
один мой коллега мне на такое ответил: нет проблем, я быстро печатаю :)
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631955
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123придуриваешься?
В системе есть 3x50 методов типа:тут есть выбор - либо вставить, либо страдать с передачей коннекта.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631956
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaЗавтра нам понадобилась внутри класса зависимость от условного класса X и нужно в 50 местах рефакторить создание объекта или дописывать dao.setMyX(new X())
нет. У же нет счас зависимостей. И работает.
Вот и в будущем зависимости не вносить в классы - это сервисный слой.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631957
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123вот и вставляйнужно вставить только в querySingleRow и ему подобные
а их мало
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631959
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадятут есть выбор - либо вставить,
ты понял зачем 3 класса?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631962
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты понял зачем 3 класса?
Просто чтобы не всё в одном. :D
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631964
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczPetro123ты понял зачем 3 класса?
Просто чтобы не всё в одном. :D
да! )))
У вади и одного класса я не наблюдаю. Только куча select \ insert
))
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631965
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaодин мой коллега мне на такое ответил: нет проблем, я быстро печатаю :))))
тоже наверно, репо не слыхивал и ОРМ тоже).
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631968
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты понял зачем 3 класса?я понял, вот только проблема этих трёх классов отошла на второй план. проблема оказывается конетах.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631969
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тоже наверно, репо не слыхивал и ОРМ тоже
нет, на такое у него другая отмазка: в это надо вникать, а мы, видимо, готовимся себе на смену нанимать олигофренов - по-этому код должен быть максимально туп и понятен дибилам.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631970
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяпроблема оказывается конетах
проблема с учетом скилла ТС - во всем
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631971
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123У вади и одного класса я не наблюдаю. Только куча select \ insertу меня просто организовано проще и не возникают такие проблемы
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631972
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaпроблема с учетом скилла ТС - во всемтут согласен
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631973
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяу меня просто организовано проще
на странице, мы в курсе. причем в ее html-ной части
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631974
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaна странице, мы в курсе. причем в ее html-ной частида , у меня для каждой роли доступен свой набор страниц. и обработка данных для каждой страницы идет своим набором методов.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631978
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
Про ОРМ я слышал и знаю что это такое но я уже говорил что Переписывать текущий проект никто не будет. Перепись всего что сейчас есть займет просто дофига времени, а на это нет ни времени, ни средств.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631979
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяchpashaна странице, мы в курсе. причем в ее html-ной частида , у меня для каждой роли доступен свой набор страниц. и обработка данных для каждой страницы идет своим набором методов.
а у автора нет и страничек, ни html. Прикинь!
Это чудо!
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631981
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяPetro123ты понял зачем 3 класса?я понял, вот только проблема этих трёх классов отошла на второй план. проблема оказывается конетах.

нет, не в коннектах.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631985
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Blazkowiczне нужно их создавать каждый раз.
он тогда не узнает конец транзакции, когда коммитить.
у меня автокоммиты.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631987
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123,
Про ОРМ я слышал и знаю что это такое но я уже говорил что Переписывать текущий проект никто не будет. Перепись всего что сейчас есть займет просто дофига времени, а на это нет ни времени, ни средств.
а что ты хочешь?
Даже если выделить паттерн репозиторий:
Код: java
1.
2.
3.
4.
5.
interface AdminRepository {
    public function save(Member member);
    public function getAll();
    public function findById(MemberId memberId);
}


то надо работать))
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631988
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123а у автора нет и страничек, ни html. Прикинь!
Это чудо!
откуда знаешь?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631989
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopоткуда знаешь?долго живу
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631990
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopу меня автокоммиты.
а как вставить родителя, и потом детей с автокоммитом?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631991
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklopоткуда знаешь?долго живу
ни о чем
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631994
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklopу меня автокоммиты.
а как вставить родителя, и потом детей с автокоммитом?
вставить родителя, вернуть id и передать его в детей.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631995
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвставить родителя, вернуть id и передать его в детей.
ты не врубился? Откатить нельзя посередине.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39631998
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklopвставить родителя, вернуть id и передать его в детей.
ты не врубился? Откатить нельзя посередине.
я как бы в курсе что и зачем это. Я НЕ ИСПОЛЬЗУЮ ЭТО! это ясно? зачем долбать этим? хочешь показать что ты умнее? удачи, влг в руки, ветер в спину. Я не собираюсь мерятся ***... Я прошу помощи, а не этих...
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632000
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123пропущено...

ты не врубился? Откатить нельзя посередине.
я как бы в курсе что и зачем это. Я НЕ ИСПОЛЬЗУЮ ЭТО! это ясно? зачем долбать этим? хочешь показать что ты умнее? удачи, влг в руки, ветер в спину. Я не собираюсь мерятся ***... Я прошу помощи, а не этих...
я выше сказал что нужен конец транзакции.
Ты мне сам впарил про автокоммит.
Зачем?
Конец транзакции нужен для этого:
Код: java
1.
basicDataSource.getConnection().close();
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632001
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123я выше сказал что нужен конец транзакции.
Ты мне сам впарил про автокоммит.
Зачем?
Конец транзакции нужен для этого:
Код: java
1.
basicDataSource.getConnection().close();



В данном случае это освобождение конекшена и возврат его в пул свободных.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632004
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopВ данном случае это освобождение конекшена и возврат его в пул свободных.
вот это в базовом классе вставить при уничтожении его или закрытии.
А в конструкторе - получение коннекта.
Дошло?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632005
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123я выше сказал что нужен конец транзакции.
Ты мне сам впарил про автокоммит.
Зачем?
Конец транзакции нужен для этого:
Код: java
1.
basicDataSource.getConnection().close();


Все остальное за меня делают либы.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632006
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123TsyklopВ данном случае это освобождение конекшена и возврат его в пул свободных.
вот это в базовом классе вставить при уничтожении его или закрытии.
А в конструкторе - получение коннекта.
Дошло?
Да как-то сам до этого догадался еще днем. Тут только один человек подсказал что-то дельное.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632007
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123а у автора нет и страничек, ни html. Прикинь!
Это чудо!прикинь 21341559 , аж целых 10 страничек.
Tsyklopнет, не в коннектах.а зачем в конструкторе предаётся коннект?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632009
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopДа как-то сам до этого догадался еще днем. Тут только один человек подсказал что-то дельное.
и где твой ответ Blazkowicz ?
Всё остальное мы без тебя твой Г код тут обсуждали.
Работай!
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632010
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяTsyklopнет, не в коннектах.а зачем в конструкторе предаётся коннект?
не коннект, а datasource из которого берется автоматом конекшн из пула свободных. Я этим не занимаюсь.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632011
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopне коннект, а datasource из которого берется автоматом конекшн из пула свободных. Я этим не занимаюсь.я тебе показал вариант с try-with-resources. намного проще.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632012
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Всё остальное мы без тебя твой Г код тут обсуждали.
Работай!
кому что, у кого что. зачем сюда писать тебе? что бы показать какой я крутой, я такое знаю, а ты такое овно что пишешь не так как я? чувак иди гуляй отсюда в таком случае. Я прошу нормально человеческой помощи, подсказки у тех кто реально знает, а не выделывается тут. На нормальные вопросы я нормально отвечу, расскажу.

раз Г код ну так не смотри в эту тему тогда.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632013
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяприкинь 21341559 , аж целых 10 страничек.
угу. И такие ответы:
авторСтранное понимание модульности. Получается что Вы хотите не выделить однотипный функционал в отдельный модуль, а размазать функционал по всему приложению.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632014
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяя тебе показал вариант с try-with-resources. намного проще.
мне такое нужно писать везде где я использую базу? или как? не совсем сейчас понимаю
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632015
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklop,
Если обидчив как девочка - меняй профессию.
Ты на публичном форуме.
Ответ дан вторым постом - Наследование.
Не понравился?
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632017
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Tsyklop,
Если обидчив как девочка - меняй профессию.
Ты на публичном форуме.
Ответ дан вторым постом - Наследование.
Не понравился?
я не обидчив. Я просто не перевариваю людей которые выделываются, оскорбляют других пытаются показать какой он афигенный, а другой овно... я считаю что такой человек обычное быдло и вести беседу с таким человеком не особо...
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632018
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopмне такое нужно писать везде где я использую базу? или как? не совсем сейчас понимаювот у тебя есть
Код: 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);
    }


вот тут getQueryRunner работа с базой в нем и ставь
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632019
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадявот тут getQueryRunner работа с базой в нем и ставь
понял, Благодарю.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632022
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopу меня автокоммиты.
Какой ужас. Тогда все манипуляции с DataSource - воообще бесполезная профанация. Как обычно, кучу кода можно выкинуть, и логика ничуть не поменяется.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632024
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczКакой ужас. Тогда все манипуляции с DataSource - воообще бесполезная профанация. Как обычно, кучу кода можно выкинуть, и логика ничуть не поменяется.
DataSource служит для пула подключений, не более того.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopя не обидчив. Я просто не перевариваю людей
тебя тоже не переваривают...
Когда 5 страниц не могут понять зачем тебе ещё один класс.
Соберись с мыслями, и ещё раз озвучивай хотелки.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632028
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopDataSource служит для пула подключений, не более того.
Я про то что вы его пердаёте туда-сюда без какой либо надобности, в то время как можно написать getQueryRunner(Core.getDataSource()) и выкинуть все остальные упоминания DataSource. Я бы ещё понял если бы вы там транзакции пытались делать. Но даже если не пытались, то смысл кода
Код: java
1.
new MyUselessClass(dataSource)


от меня ускользает.

ООП отсутствует как класс. Чисто процедурами умудрились настрочить проект. Пожалуйста, перед тем как начинать другой проект прочтите 3 книги. Enterprise Patterns, Clean Code и что-нибудь про Spring. Иначе опять получится то что получилось.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632030
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123тебя тоже не переваривают...
Когда 5 страниц не могут понять зачем тебе ещё один класс.
Соберись с мыслями, и ещё раз озвучивай хотелки.
Давайте Вы не будете говорить за всех. Отвечайте за себя и только. Остальные не ведут себя как петух, как Вы.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632031
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПожалуйста, перед тем как начинать другой проект прочтите 3 книги. Enterprise Patterns, Clean Code и что-нибудь про Spring. Иначе опять получится то что получилось.

Именно это я и буду делать после того закончу этот. И так в курсе что делается не совсем правильно.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632033
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tsyklopвадяя тебе показал вариант с try-with-resources. намного проще.
мне такое нужно писать везде где я использую базу? или как? не совсем сейчас понимаю
Нет. Только там где работаешь с DataSource и Connection. И этот код у должен быть в одном единственным методе. Не нужно его копировать в каждый метод запроса. Нужно изучать разные способы переиспользования кода. Такие как ООП и АОП.
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632034
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczНет. Только там где работаешь с DataSource и Connection. И этот код у должен быть в одном единственным методе. Не нужно его копировать в каждый метод запроса. Нужно изучать разные способы переиспользования кода. Такие как ООП и АОП.

в чистом виде с Connection я не работаю. Это делает либа dbutils
...
Рейтинг: 0 / 0
Объединение sql запросов в один класс JDBC
    #39632039
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopPetro123тебя тоже не переваривают...
Когда 5 страниц не могут понять зачем тебе ещё один класс.
Соберись с мыслями, и ещё раз озвучивай хотелки.
Давайте Вы не будете говорить за всех. Отвечайте за себя и только. Остальные не ведут себя как петух, как Вы.
дык я же про тебя конкретно сказал. И твой первый пост про необходимость класса.
Топик стартер - вы. И ведите себя скромнее.
Повторить вопрос вам всё равно придётся.
...
Рейтинг: 0 / 0
133 сообщений из 133, показаны все 6 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Объединение sql запросов в один класс JDBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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