持久层设计策略

helencoder 2011-05-17

在编程的领域中,越来越多的发展趋势的是面向对象的思想,即Object的思想。

而在数据库领域中,虽然NoSQL开始流行,但是关系型数据库还是占据了企业开发技术列表的半壁江山,即Relation数据库。

如何将Object和Relation进行完美的结合,一直是持久层讨论的话题。关于O-RMapping的理论也比较多,相应的框架级产品也不少。如Hibernate、MyBatis等。

那么设计一个这样的框架需要考虑哪些问题呢?

1、如何映射?即通过什么方式能够将Object中的属性与数据库系统的行数据相对应,要知道Object中的属性名和类型与数据库中的可是不一定一致。更有甚者,一个业务实体的Object中,对应的数据库中的不只是一张表,如何做到CRUD?

2、如何处理继承?Object的三大特性就是继承、多态和封装。如何利用好这个继承呢?在关系数据库中可体现不出来这个继承关系。

3、事务处理。在实际的业务处理中,需要进行一些事务处理,因此DAO组件需要具有事务处理的能力。

4、性能处理。在数据处理性能有要求的时候,怎么能够达到所要求的性能呢?或者说不会让DAO层成为性能的瓶颈呢?缓存?懒加载?

5、轻量级。我可不想使用这个DAO框架的时候需要引入几个M的jar包。

6、SQL透明化

相关推荐