2013-08-24 3 views
0

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

Например запросы могут быть:

SELECT * 
FROM TABLE_NAME 
WHERE TABLE_NAME.ATTRIBUTE_NAME = ? 

и

SELECT * 
FROM TABLE_NAME 
WHERE TABLE_NAME.ATTRIBUTE_NAME = ? 
     AND TABLE_NAME.ATTRIBUTE_NAME1 = ? 

и мне придется писать независимую функцию выполнять как (an example, как сделать это для одного запроса), но Я знаю, что это не модульный способ сделать это.

Есть ли лучший способ сделать это?

+0

Почему бы не взглянуть на поддержку Spring JDBC и просто использовать DAO/Service для выполнения запроса? DAO/Service - это всего лишь шаблон, который можно использовать вне контекста весны. –

+0

@bellabax. Я не знал об этом. Я работал только на 'jdbc' в прошлом. Пожалуйста, не стесняйтесь уточнять, есть ли другой способ сделать это (хотя я проверю его). –

ответ

0

IMO действительно хорошее решение может быть использовано JOOQ библиотека.
Просто

  • создать схему базы данных
  • подключения к базе данных
  • использовать свободно API для создания запроса на основе вашей генерируемой базы данных схемы метамодели

(Вы также можете использовать как простой SQL-исполнитель, как описано here)
Выполнено. Это ваша библиотека.

После того, чтобы отдельно от контекста программы, создать интерфейс, как

interface MyOperations { 
    public int getUserById(int userID); 
} 

class MyOperationsImpl implements MyOperations { 

    public MyOperationsImpl(Connection connection) {...} 

    int getUserById(int userID) { 
    DSLContext create = DSL.using(this.connection, SQLDialect.MYSQL); 
    create.select().from(USERS).where(USERS.ID.equal(userID)); 
    } 
} 

Это может ответить на ваш вопрос или помочь каким-то образом?

Смежные вопросы