Spring Framework для передачи объекта Connection в устаревший код - PullRequest
0 голосов
/ 04 октября 2011

Я использую Spring JDBC 3.0.6. У меня также есть устаревший код, который использует простой JDBC. В унаследованном коде есть методы, для которых требуется объект java.sql.Connection. Я хочу вызвать этот метод из моего кода Spring. Как я могу передать объект java.sql.Connection?

Если я беру объект соединения из источника данных, тогда мне нужно управлять возвратом / выпуском этого соединения. Могу ли я не просто получить ссылку на объект соединения, который находится в транзакции.

Я использую конфигурацию на основе аннотаций и декларативные транзакции на основе AOP.

Ответы [ 2 ]

6 голосов
/ 04 октября 2011

Использование JdbcTemplate.execute(ConnectionCallback).Обратный вызов соединения будет иметь доступ к соединению, которое автоматически открывается, закрывается и связывается с текущей транзакцией Spring.

0 голосов
/ 04 октября 2011

Используйте метод DataSourceUtils.getConnection , при этом будет восстановлено соединение, связанное с транзакцией.Используйте DataSourceUtils.releaseConnection , чтобы освободить его (noop, если соединение связано с транзакцией.

Если унаследованный код имеет классы util для открытия / закрытия соединения - вы можете просто изменитьчто использовать функции DataSourceUtils.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...