频道
bg

Plain JDBC Transaction Manager

coding一月 12, 20211mins
Spring Java

要使用Spring的事务管理来处理普通的JDBC调用,不能直接从Datasource中获取Connection ,需要使用DataSourceUtils.getConnection

This transaction manager also supports direct DataSource access within a transaction (i.e. plain JDBC code working with the same DataSource). This allows for mixing services which access JPA and services which use plain JDBC (without being aware of JPA)! Application code needs to stick to the same simple Connection lookup pattern as with {@link org.springframework.jdbc.datasource.DataSourceTransactionManager} (i.e. {@link org.springframework.jdbc.datasource.DataSourceUtils#getConnection} or going through a {@link org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy}). Note that this requires a vendor-specific {@link JpaDialect} to be configured.

DataSourceUtils.getConnection 重要的逻辑是会从当前线程上下文同步的事务获取关联的Connection,从而统一事务的管理。

评论


新的评论

匹配您的Gravatar头像

Joen Yu

@2022 JoenYu, all rights reserved. Made with love.