Здравствуйте, Antei, Вы писали:
A>Добрый день!
A>я заметил что в одном проекте коллеги поместили sql код прямо в java классы.
A>Внедрять что-либо типо Mybatis в этом проекте уже поздно, но хотелось бы исправить ситуацию.
A>Есть ли какой-нибудь способ перенести в Spring context (используем Spring) sql код и мапперы?
A>Хотелось бы перенести в спринг xml контекст:
A>sql оператор: select some_field from some_table where id = :id
A>и маппер some_field на поле бина
A>У меня есть идеи как это сделать, но не хочу спойлить, может кто предложить что попроще
A>Посоветуйте какие-нибудь простые варианты как это сделать.
A>Спасибо!
Добрый день.
Какие по вашему мнению это даст преимущества перед использованием голого sql прямо в джава коде?
Я например вижу недостаток — если кардинально меняется запрос то надо лазить в 2 файлах — в спринговом контексте и в джава коде (который будет этот запрос доставать, передавать параметры, вызывать и мапить результат на объекты).
Второй еще больший недостаток это то, что запросы прописанные в файлах априори статические, а в коде можно добавлять условия поиска динамически.
Т.е. например у юзера есть фильтр по 3 полям, он их может заполнять или нет. Если заполнил — накладываем условие поиска. Получается если фигачить в коде, то это делается 1 запросом с 3 if-ами. Если же отдельно запросы, то надо предусмотреть все возможные кобинации заполнения фильтров и под каждый написать свой запрос. Для 3 полей это 2^3 = 8 запросов.
Насчет интеграции спринга и sql советую посмотреть
документацию