Как-то для своих нужд сделал несложный препроцессор, позволяющий упростить работу с чистым JDBC; существенный недостаток JDBC в том, что нужно писать много однообразного кода для элементарных действий.
Была такая вещь, как SQLJ, но не прижилась, не в последнюю очередь из-за наличия специального языка, который не понимают IDE.
Это попытка соединить JDBC, SQLJ, плюс кое-какие идеи из iBATIS в чистом Java-коде, без использования XML или специальной разметки кода (вместо нее используются аннотации).
Итак, препроцессор и runtime-библиотека SQLG2.
Страница проекта:
http://sourceforge.net/projects/sqlg2
Документация:
http://sqlg2.sourceforge.net
Чем он хорош:
1. Простой, код становится более похожим на PL/SQL или аналогичные языки, что есть хорошо для тех, кто хочет разрабатывать логику именно в терминах БД.
2. Нет никаких конфигурационных XML-файлов, только Java-исходники, тем не менее препроцессор извлекает из них всю нужную информацию.
3. SQL-операторы проверяются во время препроцессирования, а не в run-time, т.е. ошибки будут пойманы сразу.
4. Небольшой размер, и не требует внешних библиотек (хотя для самого препроцессора и требуется ANTLR, он включен в соответствующий jar-файл).
Здравствуйте, jpx, Вы писали:
jpx>Как-то для своих нужд сделал несложный препроцессор, позволяющий упростить работу с чистым JDBC
Мельком проглядел доку. По ходу возник вопрос. Чем такой код
/**
* SELECT EMP_NO, EMP_NAME, JOB, MGR, HIRE_DATE
* FROM EMP
* ORDER BY EMP_NO
*/
@Sql String sql = "";
лучше такого
@Sql String sql =
" SELECT EMP_NO, EMP_NAME, JOB, MGR, HIRE_DATE" +
" FROM EMP" +
" ORDER BY EMP_NO";
?
Здравствуйте, dshe, Вы писали:
D>Мельком проглядел доку. По ходу возник вопрос. Чем такой код
D>...
D>лучше такого
D>...
D>?
Только тем, что первый вариант мне больше нравится

А так разницы нет (во втором случае @Sql писать собственно и не надо).