PetShop中,数据库房部分大概是这样:
数据表现 - 数据库操作 - 数据库
\ /
实体模型
在这个例子里,"数据表现"就简化到一个Web页面。
"实体模型"与"数据库操作"、 "数据库"紧密联系。"实体模型"将数据库表映射到对象,在对业务的处理过程,对对象操作要比直接操作数据库的表等快捷方便干脆,模型中的成员通常与表的域一一对应,除非有表关联的情况(再议吧)。对应到例子,就是AuthorsInfo.cs。
"数据库操作"封装了对务需要的操作,在例子中对应的是IAuthors.cs和Authors.cs,IAuthors.cs是个接口,Authors.cs是其实现,这样的好处是可以方便于针对不同的数据库。比如我用的是MS SQLServer,我就在写针对它的Authors类去实现IAuthors;用Oracle就写针对Oracle的类同样实现IAuthors。这样我调用的时候实例化一个IAuthors就好,具体用什么数据库都不用担心。
"数据库"就是实际的数据库,例如:MS SQLServer、Oracle。
另外还有一个数据访问的帮助类,封装了一些对数据库操作,它们是游离于业务之外的基础操作,诸如Select,Insert,Delete...这些操作是有数据库差异性的,所以针对每种数据库都要有不同的类。这个帮助类是服务于"数据库操作"的,"数据库操作"对不同的数据库有不同的实现,每种实现会相应的调用对应的帮助类。在例子里,对应的是SQLHelper.cs。
例子是针对MS SQLServer的。

No comments:
Post a Comment