powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Condition Storage
22 сообщений из 22, страница 1 из 1
Condition Storage
    #39284877
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно придумать несколько классов которые реализовали хранение фильтров, сортировок и кастомных условий. Хочу сделать с использованием Interface и Generic. Что бы была возможность добавлять новые типы данных. Наверное таких классов много написано. Хотелось бы посмотреть варианты реализации.

Работаю с MyBatis. У него динамически составляется SQL запрос через XML темплейт. Нужно применять фильтры из колекции.
...
Рейтинг: 0 / 0
Condition Storage
    #39284893
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Condition Storage
    #39284894
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikI,
язык для БЛ - это бесперскетивное занятие.
...
Рейтинг: 0 / 0
Condition Storage
    #39284897
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIУ него динамически составляется SQL запрос
запрос состаляется из чего?
Из ИИ?
...
Рейтинг: 0 / 0
Condition Storage
    #39284928
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Что за ерунда? Я про java классы говорю. Хочу посмотреть реализацию интерфейса Filter и коллекцию этих реализиций для 2-3 фильтров.
...
Рейтинг: 0 / 0
Condition Storage
    #39284992
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIХочу посмотреть реализацию интерфейса Filter и коллекцию этих реализиций для 2-3 фильтров.
я тебе и привёл ОДНУ из реализаций фильтров.
А код мы написать всегда успеем.
Есть ещё одна - Интерфейс фильтр не имеет смысла без просмотра этой коллекции. Например в таблице.
Т.е. реализация должна быть в самом объекте таблица.
А иначе зачем сортировка без самой таблицы? Для меня загадка.
IMHO
...
Рейтинг: 0 / 0
Condition Storage
    #39285038
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIPetro123,

Что за ерунда? Я про java классы говорю. Хочу посмотреть реализацию интерфейса Filter и коллекцию этих реализиций для 2-3 фильтров.

ИМХО филтровать можно сразу выборку из БД.
Т.е. указывать фильтры уже в самом запросе.
...
Рейтинг: 0 / 0
Condition Storage
    #39285093
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,

Перед фильтрацией надо знать по каким условиям фильтровать. Эти условия из request достаются, к ним ставятся соответствующие имена полей. Получается коллекция.
Только после этого запускается sql который описан в XML. Там отрабатывает шаблонизатор, он понимает коллекции и достает от туда параметры. Уже есть реализация этой коллекции, но мне кажется не удачной. Там никак не учитываются типы полей для конвертации.
...
Рейтинг: 0 / 0
Condition Storage
    #39285101
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikI,
А показать юзверю предлагаемый фильтр не надо?
Схема такая:
- пагинация. Показали 30 записей ил 10000.
- при клике на столбце Месяц делаем запрос и показываем для выбора фильтр:
Февраль
Октябрь
- юзверь кликнул Октябрь
- добавили в where имяПоля='Октябрь' рефрешь таблица.
...
Рейтинг: 0 / 0
Condition Storage
    #39285121
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

Пользователь сам задает фильтр в DataTable и по AJAX грузит данные в формате JSON. В контролере параметры полученные из request надо представить в нормальном виде. Номера полей преобразовать в названия. Все это сделано и работает. Пагинация разумеется есть, используется LIMIT из MySql(предусмотреть переход на другой сервер).
Не надо пытаться решить общею задачу по архитектуре аппликации. Разговор идет о коллекции фильтров. Это промежуточное звено. После получения значений фильтров от пользователя и передачей их в sql. Не знаю как обычно называется такая коллекция. MapBasedSearchParameters, SortingPagingSearchParameters, GeneratedCriteria ? В инете ничего толкового не нашёл.
...
Рейтинг: 0 / 0
Condition Storage
    #39285130
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведу ресурсы который мне показалось имеют отношение к данный теме.
Использование generic wildcards
Новое в java 8
Поиск по критериям
То есть что то вроде
Код: java
1.
2.
3.
4.
5.
public interface Filter<String, F, V> {

    void add(String key, .....);
    V get(.....)
}


Сейчас работаю с классом
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class SqlFilter {
    public String fieldName;
    public String value;
    public String operation;

    public SqlFilter(SqlFilter filter) {
        fieldName = filter.fieldName;
        value = filter.value;
        operation = filter.operation;
    }

    public SqlFilter() {
    }
}
...
Рейтинг: 0 / 0
Condition Storage
    #39285158
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIСейчас работаю с классом
я тебе скажу, что чем проще, тем лучше.
http://stackoverflow.com/questions/6056770/mybatis-how-to-create-w-dynamic-where-clause
У нас мы крутили вертели ч этими фильтрами и формочкой для юзверей.
Почти такая как по ссылке выше приводил.
А юзвери нас послали с формой ввода этих фильтров.
Присобачили прямо в коде услови не по фильтрам-именам полей, а статическими галками и описанием Label текстом типа: Самые лучши показатели: (Галка)
...
Рейтинг: 0 / 0
Condition Storage
    #39285161
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIЭто промежуточное звено. После получения значений фильтров от пользователя и передачей их в sql
JSON с клиента бери (фильтры) и на сервер автоматом в коллекцию. Тебе же с ней работать.
IMHO
...
Рейтинг: 0 / 0
Condition Storage
    #39285173
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

DataTable тупой компонент, он выдает сортировку по НОМЕРУ поля. Кроме того никакой формы ввода фильтров нет! Есть просто фильтры и хочу иметь возможность выбрать операцию для поля
сейчас так:
Код: java
1.
2.
    private String[] Fields = {"caller", "et.name", "receiver", "date"};
    private String[] Operation = {"LIKE", "LIKE", "LIKE", "="};


Для этого нужно спроектировать API. Дайте ссылки на такие решения! Их должно быть много!
...
Рейтинг: 0 / 0
Condition Storage
    #39285186
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIДля этого нужно спроектировать API. Дайте ссылки на такие решения! Их должно быть много!
ВИ №1
========

В виде дива встраиваете фильтр прямо в таблицу или рядом или popup окном.
Для более простого там условие только добавления AND без OR.
Коллекцию для этого привёл выше по ссылке (как вариант).
...
Это ТЗ для модификации
авторDataTable тупой компонент
если нет денег на нормальную таблицу.
...
Рейтинг: 0 / 0
Condition Storage
    #39285217
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIКроме того никакой формы ввода фильтров нет!
мммммм ... а это что?
http://www.ok-soft-gmbh.com/jqGrid/ToolbarSearchValidation.htm
...
Рейтинг: 0 / 0
Condition Storage
    #39285240
ErikI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот так выглядит моя форма . Но показ форм ни капли не приближает маня к пониманию правильный системы фильтров.
...
Рейтинг: 0 / 0
Condition Storage
    #39285255
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIНо показ форм ни капли не приближает маня к пониманию правильный системы фильтров.
здрасте приехали.
Сначала ГУИ\концепция\преценденты. А потом какая то тьфу коллекция.
Коллекция ведь это просто трубопровод от ГУИ что смог накликать юзверь к SQL-XML iBatis.
Ты бы ещё над XML задумался. Что там думать то?
Или решил лямбды из java8 пописать?
...
Рейтинг: 0 / 0
Condition Storage
    #39285260
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIА вот так выглядит моя форма .
эта круче))
...
Рейтинг: 0 / 0
Condition Storage
    #39285265
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErikIА вот так выглядит моя форма . Но показ форм ни капли не приближает маня к пониманию правильный системы фильтров.

Просто Map<String,Object>
Где "ключ" - это поле (колонка столбца), а "значение" это значение фильтра.
Для "ясности" считать, что для фильтров работает пересечение (логическое "И")

P.S. KISS!
...
Рейтинг: 0 / 0
Condition Storage
    #39285277
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,
+1
Или выше пример есть:
Код: java
1.
2.
3.
ArrayList<Clause> params1 = new ArrayList<Clause>();
            params1.add(new Clause("email","like","test"));
            params1.add(new Clause("user","<>",5));


Просто, если начинать накручивать фильтры сверх меры, по башке бить начинают пользователи.
...
Рейтинг: 0 / 0
Condition Storage
    #39285282
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имена столбцов, кстати приходят от клиента при клике на колонке.
Там же модель с именами колонок уже есть.
И API DataGrid тоже есть.
Т.е. нужно из JSON фильтры конвертировать в маппинг iBatis.
Можно с этой стороны подойти. А не со стороны серверного программиста.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Condition Storage
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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