Фильтрация поиска по ключевым словам и фильтр столбцов в javafx >> MySQL

Прежде всего, я прошу прощения за мою грамматику, так как английский - не мой родной язык, это мой второй вопрос на этот день, и это уже довольно неудобно.

Я просто хочу спросить, как я могу добавить в свое приложение функцию поиска, например, поиск по ключевым словам с фильтрацией?

Я могу выполнять незначительные функции поиска, например вводить слова в строку поиска, и результаты будут отображаться в таблице.

Что я действительно хочу знать, так это как сделать что-то подобное ...

Фильтрация поиска по ключевым словам и фильтр столбцов в javafx >> MySQL

Скажем, если я ввожу слово «бронте» и слово «красивый», а тема «Английский язык» выбрана из поля со списком, когда я нажимаю GO, результат, отраженный в табличном представлении, должен быть «мышей и людей» и «грозовой высоты»

Как мне организовать свою таблицу в базе данных? поскольку я думаю, что столбец "ключевые слова" не следует размещать таким образом. У меня нет решений.

мой код на момент написания (но действительно не соответствует тому, что мне нужно):

Создание tableview с помощью этого примера кода:

public void loadDatabaseData(){

    String query = "select * from table_sample";

    try {

        preparedStatement = connection.prepareStatement(query);
        rs = preparedStatement.executeQuery();

        while(rs.next()){

            data.add(new table(
                    rs.getString("Name"),
                    rs.getString("Username"),
                    rs.getString("Password"),
                    rs.getString("kiki")
            ));

            table.setItems(data);

        }
        preparedStatement.close();
        rs.close();

    }

    catch(Exception e){

        System.err.println(e);

    }



}

Код функции поиска:

@FXML
public void searchUser()
{
    searchBox.textProperty().addListener((observableValue,oldValue,newValue)->{
        filteredData.setPredicate((Predicate<? super table>)user->{
            if (newValue==null||newValue.isEmpty()){
                return true;
            }
            String lowerCaseFilter=newValue.toLowerCase();
            if (user.getName().toLowerCase().contains(lowerCaseFilter)){
                return true;
            }
            else if (user.getUsername().toLowerCase().contains(lowerCaseFilter)){
                return true;
            }
            return false;
        });
    });
    SortedList<table> sortedData=new SortedList<>(filteredData);
    sortedData.comparatorProperty().bind(table.comparatorProperty());
    table.setItems(sortedData);
}

Поскольку О мышах и людях, похоже, не включает ключевое слово бронта, а количество строк больше, чем о мышах и людях и грозовой перевал с ключевым словом красивая, я бы сказал, что такой запрос невозможен для любой базы данных, чтобы получить этот результат, если не задействовано больше информации, чем мы можем видеть в таблице...

fabian 12.03.2018 11:35

приблизительное представление того, что я пытаюсь сделать: может быть, я смогу сделать что-то вроде, - если он содержит ключевые слова «бронте» ИЛИ «красивый», то переходите к следующему оператору if. - если он находится в теме «Английский», то отобразите его на столе. Но я не знаю, с чего начать и как организовать столбцы и таблицы для такого рода функций.

Andres Magallanes 12.03.2018 22:05
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
2
280
0

Другие вопросы по теме