【Java.Spring.DataAccess】DAO/Repository Support

Spring中的DAO支持提供了对JDBC, Hibernate, JPA等持久化技术的使用一致性的支持。可以在上述的持久化机制之间进行简单的切换,同时不需要过多关注捕捉各种技术所特有的异常。

统一的异常继承体系

Spring可以将特定的持久化技术的异常类型转换成其自定义的异常类型继承体系(root exception: org.springframework.dao.DataAccessException);这些自定义的异常包含了原始异常类型的全部信息。

部分异常类如下:



用于配置DAO / Repository 类的注解

确保自定义的Data Access Objects(DAOs)和Repository 类可以提供异常转换机制的方法是使用注解 - @Repository

该注解支持组件扫描(Component Scanning)来发现并配置用户的DAOs或Repository(无需在XML配置文件中进行配置)。

例如:

@Repository
public class SomeMovieFinder implements MovieFinder {
    // ...
}


任何DAO或Repository的实现都需要访问特定的持久化资源(persistence resource),具体的类型依赖与所使用的技术:

  • JDBC-Based - 使用JDBC DataSource
  • JPA-Based - 使用EntityManager
  • Hibernate - 使用SessionFactory

最简单的方法是使用注解:@Autowired, @Inject, @Resource,  @PersistenceContext 来进行资源的依赖注入。


例 - JPA Repository

@Repository
public class JpaMovieFinder implements MovieFinder {

    @PersistenceContext
    private EntityManager entityManager;

    // ...

}


例 - Hibernate API

@Repository
public class HibernateMovieFinder implements MovieFinder {

    private SessionFactory sessionFactory;

    @Autowired
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    // ...

}


例 - JDBC

@Repository
public class JdbcMovieFinder implements MovieFinder {

    private JdbcTemplate jdbcTemplate;

    @Autowired
    public void init(DataSource dataSource) {
        this.jdbcTemplate = new JdbcTemplate(dataSource);
    }

    // ...

}


注: 每种持久化技术在Spring中的使用参考具体的章节。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值