企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
类`DataSourceUtils `(for jdbc),`EntityManagerFactoryUtils `(for jpa),`SessionFactoryUtils `(for hibernate)都是低级的.应用代码想要直接处理资源的持久化,可以使用这些类保证正确的获取,同步事务,异常处理. 例如,jdbc场景,代替传统的调用`DataSource`的`getConnection() `方法,使用spring的`org.springframework.jdbc.datasource.DataSourceUtils`类,如下: ~~~java Connection conn = DataSourceUtils.getConnection(dataSource); ~~~ 如果存在的事务已经同步了一个连接,则直接返回这个连接.否则,创建一个新的连接并同步任何已存在的事务.注意,任何`SQLException`都包含在Spring Framework `CannotGetJdbcConnectionException`中,是Spring 框架的异常结构层次中之一的未检查`DataAccessExceptions`。这种方法为您提供了比SQLException更容易获得的信息,并确保跨数据库的可移植性,甚至跨不同的持久性技术。 这种方法在没有Spring事务管理(事务同步是可选的)的情况下也可以工作,因此无论您是否使用Spring进行事务管理,都可以使用它。 当然,一旦您使用了Spring的JDBC支持,JPA支持或Hibernate支持,您通常不会使用`DataSourceUtils`或其他帮助程序类,因为您通过Spring抽象比直接使用相关API更愉快的工作。 例如,如果使用`Spring JdbcTemplate`或j`dbc.object`包来简化JDBC的使用,则在后台进行正确的连接检索,您不需要编写任何特殊代码。