这个小案例通过Spring中的一些Java5特性,使用Hibernate和JDBC实现了DAO。这个项目非常简单,
因为其目的只是演示SimpleJdbcTemplate
和@Repository
注解的基本用法及几个其他DAO相关的特性,
没其他内容了。
有3个基于CarPartsInventory
接口的DAO实现,采用了不同的风格。
两个使用Hibernate,另一个用JDBC。JdbcCarPartsInventoryImpl
用了JDBC和SimpleJdbcTemplate
。
如果仔细看这个DAO,你将发现SimpleJdbcTemplate
使用的Java5特性大大简化了你的DAO代码。
TemplateHibernateCarPartsInventoryImpl
使用HibernateTemplate
来查询Part并更新库存。
如果你已经习惯了使用Spring和Hibernate进行开发,那这里就没有什么特别的东西了。
PlainHibernateCarPartsInventoryImpl
并没有使用HibernateTemplate
。
它用了Hibernate3 API查询会话和数据库来获取部件。当然,Hibernate3 API并不会抛出Spring DataAccessExceptions
,
这也是最初使用HibernateTemplate
的原因之一。Spring 2.0添加了一个注解,让你仍旧可以获得相同的行为。
@Repository
注解(如果仔细看PlainHibernateCarPartsInventoryImpl
,你会发现上面有这个注解)
会结合PersistenceExceptionTranslatorPostProcessor
自动将Hibernate异常转换为Spring DataAccessExceptions
。