Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2021, 16:26   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Вызов цепочки методов, builder SQL запроса

Добрый день, хочу разработать класс - сборщик (на минималках) SQL запроса,
к примеру в main будет выглядить так:

select(columns).from(table).where(. ..).join(table,table2),
на выходе надо получить строку, что-то примерно такое - Select columns from table ....
сейчас написал код и уже мозг перегружен, да, я знаю про hibernate, но хотел бы сам написать что-то простое) сейчас у меня есть такой код:
Код:
class QueryBuilder {

    private String columns;
    private String from;


    public static Select building() {
        return new QueryBuilder().new Select();
    }

    public class Select {


        public From select(String column) {
            return new Select().new From(column);
        }

        public class From {
            private String from;
            private String column;

            private From (String column)
            {
                this.column = column;
            }

            public From from(String from) {
                this.from = from;
                return this;
            }

            public QueryBuilder build() {
                QueryBuilder.this.from = from;
                QueryBuilder.this.columns = column;
                return QueryBuilder.this;
            }
        }
    }

    @Override
    public String toString() {
        return "SELECT "+columns + " FROM " + from;
    }

}

а вот main
Код:


        String myQuery = QueryBuilder.building().select("column").build().toString();
        String myQuery1 = QueryBuilder.building().select("column").from("tables_5").build().toString();

        System.out.println(myQuery);
        System.out.println(myQuery1);

        //SELECT column FROM null
        //SELECT column FROM tables_5

Очень путаюсь в том, что сам написал, а еще как-то нужно добавить where и join, подскажите, как можно написать проще то, что уже есть? (переписать)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 24.07.2021, 14:32   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Чем Вас Criteria API не устраивает?
Streletz вне форума Ответить с цитированием
Старый 24.07.2021, 20:10   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Поучиться делать что-то свое, иначе я вопрос бы не задал
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов методов шаблонного класса. the_deer_one C# (си шарп) 2 13.08.2012 17:22
Запуск цепочки приложений в С++ Builder Freeman-c Помощь студентам 5 29.07.2012 17:29
Вызов методов вебсервиса zigler Visual C++ 1 26.02.2012 19:37
JNI вызов java методов из С++ belka_cj Общие вопросы по Java, Java SE, Kotlin 0 24.11.2009 19:36
Вызов методов объекта из функции? jojahti Общие вопросы C/C++ 3 03.08.2009 16:57