Проект, над которым я работаю, использует прямой доступ к данным JDBC во всей своей красе и не использует никаких транзакций. Я чувствую, что использование транзакций и упрощение написания методов доступа к данным важно, особенно с некоторыми изменениями, которые вносятся в настоящее время. Проект существует уже довольно давно и не подходит для платформы ORM. Он также использует много Singletons (тьфу), и распутывание его, чтобы сделать возможным использование инъекций зависимостей, было бы изрядной работой, и я не думаю, что смогу убедить кого-либо, что мы должны сделать это сейчас.
Мне нравится интерфейс Spring JDBC, особенно через SimpleJdbcTemplate
. Мой вопрос о том, как включить для этого несколько простых транзакций (для каждого запроса сервлета), без необходимости устанавливать что-либо программно в каждом методе доступа к данным или с использованием контейнера Spring IoC или AOP. Я поиграл с моей собственной архитектурой, которая заканчивается интерфейсом, похожим на SimpleJdbcTemplate
, и может использовать одно локальное соединение запроса и транзакцию, когда вызовы к нему выполняются в контексте запроса (через ServletRequestListener
с ThreadLocal
). Кажется, это работает хорошо, но я думаю, что использование хорошей внешней библиотеки, такой как Spring JDBC, было бы предпочтительным.
У кого-нибудь есть опыт?