Просто создайте JdbcTemplate
и используйте тот же DataSource
, который используется HibernateDaoSupport
, HibernateTemplate
. Hibernate - это просто модная библиотека, работающая поверх JDBC DataSource
/ connection. Вы можете использовать его вручную. Попробуйте:
@Autowired
private DataSource ds;
Если вам повезет, это должно сработать. Лучшая идея - создать JdbcTemplate
в виде bean-компонента Spring и ввести правильный источник данных:
<bean id="jdbcTemplate" class="org.springframework.jdbc.coreJdbcTemplate">
<constructor-arg ref="dataSource"/>
</bean>
Рассмотрите возможность использования интерфейса JdbcOperations
, также посмотрите SimpleJdbcOperations .
@Autowired
private JdbcOperations jdbc;
Если вы начинаете получать доступ к одной и той же базе данных / пулу соединений как с помощью Hibernate, так и с использованием кода прямого доступа JDBC, вам следует остерегаться некоторых побочных эффектов:
- Кэш Hibernate L2 не знает о модификациях JDBC
- Код JDBC не знает о оптимистической блокировке Hibernate
- управление транзакциями
- ...
Другой подход заключается в доступе к соединению JDBC, используемому сеансом Hibernate (в HibernateDaoSupport
:
getSession().connection()