davinci
2007-04-20 23:34
同意Banq的'树立OO思维是首要'的讲法.

Hibernate是真正把数据库和业务模块解偶的实现.举个例子,我们不用关心一个Java业务层中的值该如何保存到具体哪种数据库中. 比如以往一个date值在不同的数据库中的保存需要不同的处理,也就出现了不同版本的dao来对应不同的数据库.但Hibernate提供了一个中间人,Hibernate Mapping Types,我们只需将Java类型和Hibernate Mapping Types对应,Hibernate会根据不同数据库做不同操作.实现了数据库与业务层的解偶.HQL也是将业务层与JDBC的一种解偶.

我们不用关心数据库是如何实现的,只需要把注意力放在对象的建立上.我们的设计应该是先设计对象和对象之间的关联,然后再把对象和持久化实现相映射(如何持久化,哪种数据库还是文件,我们不需要关心),而以往的做法是先按照业务建数据库,把持久层定死,然后根据持久层实现业务层,形成两者的紧偶合.所以针对数据库编成是不灵活的而且不是OO思维的体现. 这点Banq大哥已在很多文章中反复强调.

猜你喜欢
2Go 上一页 1 2