Мои требования такие: я хочу использовать Beetl для создания SQL шаблона (не использую BeetlSQL потому что планирую использовать это с jSqlBox, который является его конкурентом в качестве DAO-инструмента. Также если пользователи используют чистый JDBC, DbUtils, JdbcTemplate и т.д., они могут столкнуться с такой же необходимостью найти SQL-шаблон):
Без изменения исходного кода Beetl, есть ли способ использовать конфигурацию Beetl-шаблонов для реализации этой функциональности?
Java метод: templateQuery("SELECT * FROM u WHERE u.name = #{u.name} AND u.addr = '${u.addr}'", bind("u", userBean));
После внутренней обработки Beetl он эквивалентен следующему: normalQuery('SELECT * FROM u WHERE u.name = ? AND u.addr = "Beijing"', new Object[]{"张三"});
Другие функции Beetl могут отсутствовать (если поддерживаются — это тоже хорошо, просто размер jar будет больше). Однако должны поддерживаться следующие ключевые слова и функции: for
, in
, if
, notNull()
, notEmpty()
. Отсутствие других функций Beetl направлено на сокращение времени обучения, а также то, что SQL часто можно динамически скомпоновать с помощью встроенных Java функций и синтаксиса.